2

編集:

コメントで 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")

ここに画像の説明を入力

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 に答える