具有多个形状但只有一个多边形的 Shapefile
Shapefile with multiple shapes but only one polygon
我正在使用来自 http://www5.kingcounty.gov/gisdataportal/ 的 "King County with Natural Shoreline for Puget Sound and Lake Washington" shapefile。绘制 shapefile 时会出现华盛顿湖的轮廓,但不会另存为相对于金县轮廓的附加多边形。我希望给华盛顿湖涂上与该县其他地方不同的颜色,但我不确定该怎么做,因为 shapefile 只有一个特征。我正在尝试在 R 中操作 shapefile。
您可以提取华盛顿湖 "hole",然后将其添加到图中。这使用基本图形,但它与 ggplot 一样简单。
library(rgdal)
# your shapefile
kc <- readOGR("kingsh/kingsh.shp", "kingsh")
# extract the singular hole that is Lake Washington and
# make it into something plottable
lw <- SpatialPolygons(list(Polygons(list(kc@polygons[[1]]@Polygons[[2]]), ID="lw")))
plot(kc, col="steelblue")
plot(lw, col="maroon", add=TRUE)
您可以通过手动扫描对象或类似的方式找到孔:
unlist(lapply(kc@polygons, function(p) {
polys <- slot(p, "Polygons")
lapply(polys, function(q) {
slot(q, "hole")
})
}))
我不得不猜测你是如何读入它的,因为你没有提供任何代码。
我正在使用来自 http://www5.kingcounty.gov/gisdataportal/ 的 "King County with Natural Shoreline for Puget Sound and Lake Washington" shapefile。绘制 shapefile 时会出现华盛顿湖的轮廓,但不会另存为相对于金县轮廓的附加多边形。我希望给华盛顿湖涂上与该县其他地方不同的颜色,但我不确定该怎么做,因为 shapefile 只有一个特征。我正在尝试在 R 中操作 shapefile。
您可以提取华盛顿湖 "hole",然后将其添加到图中。这使用基本图形,但它与 ggplot 一样简单。
library(rgdal)
# your shapefile
kc <- readOGR("kingsh/kingsh.shp", "kingsh")
# extract the singular hole that is Lake Washington and
# make it into something plottable
lw <- SpatialPolygons(list(Polygons(list(kc@polygons[[1]]@Polygons[[2]]), ID="lw")))
plot(kc, col="steelblue")
plot(lw, col="maroon", add=TRUE)
您可以通过手动扫描对象或类似的方式找到孔:
unlist(lapply(kc@polygons, function(p) {
polys <- slot(p, "Polygons")
lapply(polys, function(q) {
slot(q, "hole")
})
}))
我不得不猜测你是如何读入它的,因为你没有提供任何代码。