2013-05-26 20 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)