2011-11-30 59 views
3

我在R包Rgooglemaps中遇到問題。我可以從Google地圖或打開街道地圖中檢索地圖,但PlotOnStaticMap函數不會與我想繪製到地圖的數據重疊。相反,它會打開一個繪製數據的新圖形設備。所以我結束了:Rgooglemaps不在地圖上繪製數據

  • 保存在我的其中只包含檢索谷歌地圖
  • 我的數據A 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") 
+0

+1爲Rgooglemaps!如果您發佈最終結果的截圖,我會很高興! – TMS

+0

@TomasT。我發現你也在用地圖做R中的東西。你使用rgooglemaps沒有問題嗎? – user1073012

+0

nope,我沒有使用R與地圖呢..我只是很高興,這個包存在:) – TMS

回答

0

我只重新運行你的代碼,並沒有研究的問題和得到的錯誤信息:

dev.print(jpeg,"test.jpeg", width=1204, height=644, units="px") windows 2 Error: REAL() can only be applied to a 'numeric', not a 'NULL'

0

我跑R2.14.0上面的代碼和一切似乎工作。

+0

我剛剛嘗試與R2.14,我有同樣的問題......「一切似乎都奏效」,你的意思是你可以真正看到一幅在開放的街道地圖上疊加彩色小圓點的情節?或者只是你沒有運行代碼時出現錯誤? – user1073012

+0

我在地圖上看到了地圖和2個彩色點,我改變了cex和reran,點數改變了大小(只是想確保我認爲這些點不是地圖的一部分)。 –