具有多个形状但只有一个多边形的 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")
  })
}))

我不得不猜测你是如何读入它的,因为你没有提供任何代码。