2013-05-26 19 views
1

我創建了一個OpenStreetMap對象,我已繪製了一些點。現在,我正在嘗試獲取這些點的網格值的顏色值。 (例如 - 如果其中一個點在海洋中,我會期望RGB顏色值是藍色的)。然而 - 我正努力尋找訪問Map對象中colourData的正確方法(每個結構的副本),然後提取各個點的值。從地圖對象中提取顏色值

任何高層次的提示將非常歡迎在我的路上幫助我;事先非常感謝,W

代碼來創建地圖對象和劇情點:

library(rJava) 
library(OpenStreetMap) 
library(ggplot2) 
map <- openmap(c(70,-179), 
       c(-70,179),zoom=1, type="mapquest-aerial") 
map <- openproj(map) 

reclat <- c(50,20,30,40) 
reclong <- c(30,40,30,50)   
autoplot(map) + geom_point(aes(x=reclong,y=reclat)) 

地圖對象

str(map) 
List of 2 
$ tiles:List of 1 
    ..$ :List of 5 
    .. ..$ colorData : chr [1:106590] NA NA NA NA ... 
+0

你可以嘗試類似'map $ tiles [[1]] $ colorData' – agstudy

回答

1

的結構轉換的openmap結果爲Raster*物體raster, 然後提取你需要的點。結果是三個具有RGB值的 列的矩陣。使用rgb獲取顏色。

library(OpenStreetMap) 
library(raster) 

myMap <- openmap(c(70,-179), 
       c(-70,179),zoom=1, type="mapquest-aerial") 
myMap <- openproj(myMap) 

reclat <- c(50,20,30,40) 
reclong <- c(30,40,30,50) 

rMap <- raster(myMap) 

myPoints <- cbind(reclong, reclat) 

myRGB <- extract(rMap, myPoints) 
myColors <- rgb(myRGB[,1], myRGB[,2], myRGB[,3], maxColorValue=255)