首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggmap,ggimage..。-在R中保存和装载地图

ggmap,ggimage..。-在R中保存和装载地图
EN

Stack Overflow用户
提问于 2013-09-28 21:36:26
回答 1查看 1.6K关注 0票数 4

在我当前的R项目中,我正在使用ggmap包下载和显示地图。困扰我的是,你需要互联网访问,从谷歌等加载地图。我想从互联网加载地图,并保存它,以便我可以离线工作。理想的解决方案应该尽量减少get_map() (或相关命令)之间的代码量,并使用ggmap()中保存的映射(或相关命令)。

我已经知道get_map()有一个filename属性来将地图保存为图像,我也知道ggimage()方法(不过,我从未实际使用过它)。

是否有一种简单的方法来保存这样的地图,或者这两个工具是可用的最好的工具?如果是,我如何有效地使用它们?

EN

回答 1

Stack Overflow用户

发布于 2013-09-29 08:27:31

在等待相同的地图每次运行几十次之后,我遇到了同样的问题。

您可以在R中保存任何对象,但我花了一小段时间才弄清楚在函数中保存地图的细微差别。这是我想出来的

该函数查找区域设置字符串(本质上是为地图命名)、坐标和缩放级别。然后,该函数将查看映射是否已作为保存的文件存在,如果存在,则加载它。如果磁盘上不存在映射,则从Google下载地图,然后将其保存到文件中。

没有从文件加载它的技巧,但我发现,如果在将映射对象保存到磁盘之前没有在赋值函数中指定.GlobalEnv,则R将忠实地加载到错误的环境中。

代码语言:javascript
复制
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)
  }  
} 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19071921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档