Saving ggmap object to a file which can be reused?
是否可以将 ggmap 保存到本地文件?
上下文:我需要一个大区域的高分辨率地图,stamen 服务器需要很长时间才能获得。我认为最好获取一次地图,将其保存到文件中,然后在本地副本上工作。
我获取地图的代码是:
1
2 |
library(ggmap)
map <- get_stamenmap(bbox = c(left = 8.7, bottom = 46.8, right = 9.7, top = 47.6), zoom = 14, maptype = c(“toner”)) |
我知道我可以将它保存为图像,例如:
1
2 3 |
png(filename=name, width=1280, height=1280)
print(map) dev.off() |
但这并没有帮助,因为我想稍后使用地图在其上绘制不同的点和多边形,这只有在地图知道 \\’lat\\’ 和 \\’lon\\’ 的情况下才有可能图片上的每个点。
那么,有没有办法以原始数据形式保存地图?
- 您可以将对象 map 保存在 RData 文件中:save(map, file =”xy.RData”)。然后将其回调:load(“xy.RData”)。不要忘记加载库ggmap,以使R 识别map 的类。
按照 user3710546 的建议,使用 save 函数将 ggmap 对象保存到 RData 文件中,然后使用 load 将其读回。例如:
1
2 3 4 5 |
library(ggmap)
map <- get_map(location=”California”, zoom=6, maptype=”terrain”) save(map, file =”my_map.RData”) |
您可以使用 write.table(map,file=”filename”) 将其保存在文件中。
- 用 map2 <- read.table(file=”filename”) 读回这样编写的文件,我得到一个类型为 list 的对象,该对象无法使用 ggmap 绘制。有没有办法以保持 ggmap 类型的可绘制对象的方式读回文件?
- 这是因为缺少有关该对象的一些信息。您可以尝试使用 dput(map,filename) 保存它并使用 dget(filename) 下载它。
- 不幸的是,这对我不起作用。 dput(map,”mapdata”) 将文件放在磁盘上,这没关系。当我尝试 dget(“mapdata”) R 挂了几分钟,没有任何反应。有什么提示吗?
- 我尝试使用 zoom=2 并且它有效。缩放 = 14 可能会更长。您可以尝试使用较小的缩放来查看是否是问题所在吗?
- @Pascal 对 save 和 load 的想法非常好,所以我会选择那个解决方案。
来源:https://www.codenong.com/29296701/