在 tmap 上手动设置地图比例

Set manually the map scale on tmap

我正在使用 tmap 创建地图,以将特定坐标绘制为点。 我想将我的地图保存为 .png 并且使用 tmap_leafletmapshot 效果很好(见下面的代码)。

library(sf)
library(tmap)
library(mapview)

coord <- data.frame(Lat=c(0.92, 0.92, 0.93, 0.92, 0.93, 0.93, 1.00, 1.00, 0.99, 0.93),
              Lon=c(104.58, 104.51, 104.57, 104.50, 104.55, 104.51, 104.59, 104.49, 104.6, 104.61))
sdat <- st_as_sf(coord, coords = c("Lon", "Lat"),
                 crs = "+proj=longlat +datum=WGS84 +no_defs")
tmap_mode("view")
Map <- tm_basemap("Esri.WorldTopoMap") +
  tm_shape(sdat) +
  tm_dots(alpha = 1,
          title = "Location")
lf <- tmap_leaflet(Map)
mapshot(lf, file = "Map.png") # save map

我的问题是在 tmap 视图模式下可视化的默认区域。 我想缩小以可视化地图的更大区域(例如设置特定边界),而不仅仅是真正靠近绘制点的区域。我还没有在网上找到解决方案。 这就是我获得 .png 的方式:

这就是我想得到的例子(用截图制作):

您可以使用 tm_view() 调整缩放级别:

library(sf)
library(tmap)
library(mapview)

coord <- data.frame(Lat=c(0.92, 0.92, 0.93, 0.92, 0.93, 0.93, 1.00, 1.00, 0.99, 0.93),
              Lon=c(104.58, 104.51, 104.57, 104.50, 104.55, 104.51, 104.59, 104.49, 104.6, 104.61))
sdat <- st_as_sf(coord, coords = c("Lon", "Lat"),
                 crs = "+proj=longlat +datum=WGS84 +no_defs")
tmap_mode("view")
Map <- tm_basemap("Esri.WorldTopoMap") +
  tm_shape(sdat) +
  tm_dots(alpha = 1,
          title = "Location") +
  tm_view(set.zoom.limits = c(10, 20))

lf <- tmap_leaflet(Map)
mapshot(lf, file = "Map.png")