2013-05-26 2 views
1

Я создал объект OpenStreetMap, на который я нарисовал несколько точек. Прямо сейчас, я пытаюсь получить значения цвета значений сетки этих точек. (например, если одна из точек находится в океане, я ожидаю, что значение цвета RGB будет синим). Однако - я изо всех сил пытаюсь найти правильный способ доступа к colourData в объекте Map (копия структуры в соответствии с ниже), а затем извлечь значения для соответствующих точек.Извлечение значений цвета из объекта карты

Любые советы высокого уровня были бы очень рады помочь мне на моем пути; Большое спасибо заранее, 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) 
Смежные вопросы