編集:
コメントで Edzer Pebesma が示唆しているように、ポリゴンに穴を追加するための推奨される方法は、スロットを変更するのではなく、この関連する質問 に示されているように、ポリゴンを再構築することです。
元の質問
の助けを借りてSpatialPolygons-class、ポリゴンを他のポリゴンの穴に変更しようとしましたが、「穴ポリゴン」が他のポリゴンの境界線として表示されている間、その内部は残りの部分として色付けされています。
私は何を間違っていますか?
ここで使用defPunchedおよびdefHole定義:
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")

