我遇到了 R 包 Rgooglemaps 的问题。我可以从谷歌地图或打开街道地图中检索地图,但 PlotOnStaticMap 函数不会与我想要绘制到地图的数据重叠。相反,它会打开一个新的图形设备,在其中绘制数据。所以我最终得到:
- 保存在我的工作目录中的图像,其中仅包含检索到的谷歌地图
- 我的数据绘制在白色背景上的 R 图形设备窗口。
我在 Windows 上,使用 R 版本 2.13.1 和 RGUI。当我通过命令行运行代码时,也会出现此问题。我记得几个月前我使用了 Rgooglemaps,它对我来说工作正常。同时我升级了我的 R 版本,所以它可能是与版本相关的问题。
有人可以尝试一下,看看你是否有同样的问题(以及解决它的方法)吗?
这里是重现问题的示例(取自http://www.r-bloggers.com/visualizing-gis-data-with-r-and-open-street-map/)。该示例使用 Open Street Map 而不是 googlemaps,但行为是相同的。编码:require(RgoogleMaps)
lat_c<-51.47393
lon_c<-7.22667
bb<-qbbox(lat = c(lat_c[1]+0.01, lat_c[1]-0.01), lon = c(lon_c[1]+0.03, lon_c[1]-0.03))
OSM.map<-GetMap.OSM(lonR=bb$lonR, latR=bb$latR, scale = 20000, destfile="bochum.png")
image(OSM.map)
lat<- c(51.47393, 51.479021)
lon<- c(7.22667, 7.222526)
val <- c(0, 255)
lat_adj<-function(lat, map){(map$BBOX$ll[1]-lat)/(map$BBOX$ll[1]-map$BBOX$ur[1])}
lon_adj<-function(lon, map){(map$BBOX$ll[2]-lon)/(map$BBOX$ll[2]-map$BBOX$ur[2])}
PlotOnStaticMap(OSM.map, lat = lat_adj(lat, OSM.map), lon = lon_adj(lon, OSM.map),
col=rgb(255,0, val,90,maxColorValue=255),pch=16,cex=4)
dev.print(jpeg,"test.jpeg", width=1204, height=644, units="px")