2

编辑:

正如 Edzer Pebesma 在评论中所建议的那样,向多边形添加孔的推荐方法不是修改槽而是重建多边形,如相关问题所示。

原始问题

SpatialPolygons-class我尝试将多边形修改为另一个多边形的孔的帮助下,但是当“孔多边形”显示为另一个多边形的边框时,其内部与其余部分一样着色。

我究竟做错了什么?

在这里使用defPuncheddefHole定义:

library("sp")
load(url("http://spatcontrol.net/CorentinMBarbu/misc/holeIssue.rda"))
defHole@polygons[[1]]@Polygons[[1]]@hole<-TRUE
OnePolDFToPolygon <- function(x){
     main <- x@polygons[[1]]@Polygons[[1]]
     return(main)
 }
punch <- Polygons(list(OnePolDFToPolygon(defPunched),OnePolDFToPolygon(defHole)),defPunched@polygons[[1]]@ID)
mine <- SpatialPolygons(list(punch),proj4string=defPunched@proj4string)
mine <- SpatialPolygonsDataFrame(mine,data=as(defPunched,"data.frame"))
plot(mine,col="blue",border="green")

在此处输入图像描述

4

1 回答 1

3

孔应该具有相反的环方向,例如通过

mine@polygons[[1]]@Polygons[[2]]@coords = mine@polygons[[1]]@Polygons[[2]]@coords[5:1,]
plot(mine, col = 'blue')

你得到下面的情节。这些数据是从哪里来的?

在此处输入图像描述

于 2015-04-14T14:33:34.683 回答