在等待相同的地图每次运行加载数十次后,我遇到了同样的问题。
你可以在 R 中保存任何对象,但我花了一点时间才弄清楚在函数中保存地图的细微差别。这就是我想出的——很想看看是否有可以改进的地方。
该函数查找区域设置字符串(本质上是命名地图的名称)、坐标和缩放级别。然后该函数查看地图是否已作为保存文件存在,如果存在则加载它。如果磁盘上不存在地图,则会从 Google 下载地图,然后将其保存到文件中。
从文件加载它没有技巧,但我发现如果我.GlobalEnv
在将映射对象保存到磁盘之前没有在分配函数中指定,那么 R 会忠实地加载到错误的环境中。
load.map <- function(Locale, Lon, Lat, MapZoom){
MapName <- paste("Map", gsub(" ", "", Locale), MapZoom, sep = "")
FileName <- paste(MapName,".RData", sep = "")
if (file.exists(FileName) & ReloadMaps == 0)
{
load(FileName, envir = .GlobalEnv)
} else
{
Map <- get_googlemap(center=c(lon = Lon, lat = Lat), zoom=MapZoom, scale = 2,
size = c(640, 640), maptype = "roadmap", color = "color", format = "png8")
assign(MapName, Map, envir = .GlobalEnv)
save(list = MapName, file = FileName, envir = .GlobalEnv)
}
}