2015-02-06 2 views
0

Итак, у меня есть файл формы (с именем POWIATY внизу). Я хочу заполнить конкретные полигоны с помощью коордов, которые у меня есть.R: ggplot2 заполняет многоугольники в шейп-файле с помощью коордов

Скажем, я хочу, чтобы заполнить весь регион: Lat: 52,599427 долготу: 20,7572137

Я знаю, как установить точку COORDS на карте, но как заполнить весь полигон в нем?

+0

Я не могу понять этот вопрос, Вы можете объяснить это более ясно? – Math

+0

Есть ли группа или область (или какой-либо другой термин), определенный в шейп-файле для региона, который вы хотите покрасить? – lawyeR

ответ

2

Есть дублирующие названия региона в этом шейп, так что вы должны будете заполнить полигоном числовым идентификатором:

library(rgdal) 
library(rgeos) 
library(ggplot2) 

pow <- readOGR("POWIATY.shp", "POWIATY") 
plot(pow) 

where <- over(SpatialPoints(cbind(20.7572137, 52.599427)), pow, TRUE) 
reg <- data.frame(id=rownames(where[[1]])) 

map <- fortify(pow) 

gg <- ggplot() 
gg <- gg + geom_map(map=map, data=map, 
        aes(x=long, y=lat, map_id=id), 
        fill="white", color="black", size=0.25) 
gg <- gg + geom_map(data=reg, map=map, 
        aes(fill=id, map_id=id), color="steelblue") 
gg <- gg + coord_map() 
gg <- gg + theme_bw() 
gg 

enter image description here

+0

Вот оно! Большое спасибо. – kodi1911

+0

Я проверил его некоторое время. Когда я пытаюсь добавить это в другой шейп-файл, он показывает мне «переменная sameCRS (x, y) не TRUE» после использования над функцией. Также, когда я пытаюсь использовать gps для всех полигонов на карте, чтобы заполнить его, вы видите пробелы. Ссылка на файл формы: [ссылка] (ftp://91.223.135.109/prng/PRNG_MIEJSCOWOSCI_SHP.zip) – kodi1911

Смежные вопросы