R:ggplot2通过coords在shapefile中填充多边形

时间:2015-02-06 14:44:32

标签: r ggplot2 geospatial

所以我有shapefile(在页面底部命名为POWIATY)。我想通过我的坐标来填充特定的多边形。

让我们说,我想填补整个地区: 纬度:52.599427 经度:20.7572137

我知道如何在地图上设置点坐标,但如何在其中填充整个多边形?

1 个答案:

答案 0 :(得分:2)

该shapefile中存在重复的区域名称,因此您必须填充多边形数字ID:

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