如何将多边形修改为更改其槽的洞(SpatialPolygons) [英] How to modify a polygon to be a hole (SpatialPolygons) changing its slots

查看:8
本文介绍了如何将多边形修改为更改其槽的洞(SpatialPolygons)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

编辑:

正如Edzer Pebesma在评论中所建议的,向多边形添加洞的推荐方法不是修改槽,而是重建多边形,如in this related question所示。

原始问题

SpatialPolygons-class的帮助下,我试图将一个多边形修改为另一个多边形洞,但当该"洞多边形"显示为另一个多边形的边界时,其内部的颜色与其他多边形相同。

我做错了什么?

使用defPuncheddefHole定义的here

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")

推荐答案

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

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

您可以看到下面的情节。此数据从何而来?

这篇关于如何将多边形修改为更改其槽的洞(SpatialPolygons)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆