【问题标题】:Saving ggmap object to a file which can be reused?将ggmap对象保存到可以重复使用的文件中?
【发布时间】:2015-05-31 13:06:23
【问题描述】:

是否可以将 ggmap 保存到本地文件?

上下文:我需要一个大区域的高分辨率地图,这需要stamen 服务器很长时间才能获得。我认为最好先获取地图,然后将其保存到文件中,然后再处理本地副本。

我获取地图的代码是:

library(ggmap)
map <- get_stamenmap(bbox = c(left = 8.7, bottom = 46.8, right = 9.7, top = 47.6), zoom = 14, maptype = c("toner"))

我知道我可以将其保存为图像,例如:

png(filename=name, width=1280, height=1280)
print(map)
dev.off()

但这无济于事,因为我想稍后使用地图在其上绘制不同的点和多边形,这只有在地图知道图片上每个点的“纬度”和“经度”时才有可能.

那么,有没有办法以原始数据形式保存地图?

【问题讨论】:

  • 您可以将对象 map 保存在 RData 文件中:save(map, file = "xy.RData")。然后回拨:load("xy.RData")。不要忘记加载库ggmap,以使R能够识别map的类。

标签: r plot save gis ggmap


【解决方案1】:

按照user3710546 的建议,使用save 函数将ggmap 对象保存到RData 文件中,然后使用load 将其读回。例如:

library(ggmap)
map <- get_map(location="California", zoom=6, maptype="terrain")

save(map, file = "my_map.RData")
load(file = "my_map.RData")

【讨论】:

    【解决方案2】:

    您可以使用write.table(map,file="filename") 将其保存在文件中。

    【讨论】:

    • map2 &lt;- read.table(file="filename")读回这样写的文件我得到了一个list类型的对象,它不能用ggmap绘制。有没有办法以保持ggmap 类型的可绘制对象的方式读回文件?
    • 这是因为缺少有关对象的一些信息。您可以尝试使用dput(map,filename)保存它并使用dget(filename)下载它。
    • 不幸的是,这对我不起作用。 dput(map, "mapdata") 将文件放在磁盘上,这没关系。当我尝试dget("mapdata") R 挂了几分钟,什么也没发生。有什么提示吗?
    • 我尝试了 zoom=2 并且成功了。缩放 = 14 可能会更长。您可以尝试使用较小的缩放来查看是否有问题吗?
    • @Pascal 与 saveload 的想法非常好,所以我会选择那个解决方案。
    猜你喜欢
    • 1970-01-01
    • 2014-10-08
    • 2020-02-24
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多