【问题标题】:Set manually the map scale on tmap在 tmap 上手动设置地图比例
【发布时间】:2021-12-28 02:09:09
【问题描述】:

我正在使用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的方式:

这就是我想要得到的东西(用截图制作):

【问题讨论】:

    标签: tmap


    【解决方案1】:

    您可以使用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") 
    

    【讨论】:

      猜你喜欢
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 2020-10-17
      • 2020-06-24
      • 2019-10-13
      • 2022-11-15
      相关资源
      最近更新 更多