gpt4 book ai didi

r - 导出带有固定缩放和边界框的传单 map ,无需填充

转载 作者:行者123 更新时间:2023-12-03 16:51:36 25 4
gpt4 key购买 nike

我知道我可以使用 mapview::mapshot将传单 map 从 Rstudio 导出为 PNG。但是,我无法精确指定要导出的 map 的缩放级别和区域。

this answer 借用一些代码对于相关问题,让我们考虑以下 MWE。

library(maps)
library(ggmap)
library(maptools)
library(leaflet)
library(mapview)
library(rgdal)

country <- 'italy';
zoomLevel <- 12;

ita.map <- map( country, fill = TRUE, col = 1, plot = F );
ita.map.ids <- sapply( strsplit( ita.map$names, ':' ), function(x) x[1] );
ita.sp <- map2SpatialPolygons( ita.map, IDs=ita.map.ids, proj4string=CRS("+proj=longlat +datum=WGS84"))

bb<-as.numeric(ita.sp@bbox)

m<-leaflet() %>%
setView(12.48,41.89,zoom=zoomLevel) %>%
addTiles() %>%
addPolygons(data=ita.sp)%>%
addExtent(data=ita.sp)


mapshot(m, file = "italy.png")

结果 enter image description here这是正确的缩放级别,但显然不包含整个意大利。

添加
      %>% fitBounds(bb[1],bb[2],bb[3],bb[4])

对上面的代码产生 enter image description here哪个更好,但是 a) 不遵守指定的缩放级别,并且 b) 有很多不需要的水平填充。

我认为将宽度和高度参数添加到 leaflet() call 会有所帮助,但我不确定如何自动获取正确的值。此外,生成的图像将非常大,需要降低分辨率。

如何在没有额外填充的情况下以指定的缩放级别导出包含意大利的 map 区域?

最佳答案

我不知道你想要的是可能的(缩放 = 12 和整个意大利)......这两件事对我来说似乎是相互排斥的......除非你有一个巨大的数字......正如你所建议的。

我不确定,但也许您的填充问题的答案在 webshot 的 vwidth 选项中。我想你的身材需要比宽高,所以 vwidth < vheight ...

mapshot(m, file = "italy.png", vwidth = 700, vheight = 744)

关于r - 导出带有固定缩放和边界框的传单 map ,无需填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53991800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com