在 tmap 上手动设置地图比例
Posted
技术标签:
【中文标题】在 tmap 上手动设置地图比例【英文标题】:Set manually the map scale on tmap 【发布时间】:2021-12-28 02:09:09 【问题描述】:我正在使用tmap
创建一个地图,以将特定坐标绘制为点。
我想将我的地图保存为 .png,使用 tmap_leaflet
和 mapshot
效果很好(见下面的代码)。
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的方式:
这就是我想要得到的东西(用截图制作):
【问题讨论】:
【参考方案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")
【讨论】:
以上是关于在 tmap 上手动设置地图比例的主要内容,如果未能解决你的问题,请参考以下文章