如何在Arcpy中将凹面多边形拆分为凸面多边形?


20

我正在寻找检测凹面多边形并将其拆分为凸面多边形的工具或算法。如图所示,蓝色多边形分为A和B多边形

我在Arcgis 10.1下使用Arcpy

分割多边形


15
也许您可以详细说明为什么要这样做?毕竟,(a)易于检测:凹面多边形的面积小于凸面壳;(b)多边形的任何三角剖分会自动将其分成凸多边形,因为所有三角形都是凸的。这表明您可以在许多可能的解决方案中进行选择。
ub

2
该工具集使您可以看到Bill在谈论 resources.arcgis.com/gallery/file/geoprocessing/… 将多边形转换为点,然后运行Delaunay选项

1
关于堆栈溢出,有一个答案可以解决:stackoverflow.com/a/6686842/1300519使用arcpy编写的算法应该不会太难。
Snorfalorpagus 2012年

1
@snorf这似乎回答了一个轻微但重要的不同问题。解决方案显然涉及“多边形”和“孔”的组合,这通常不是“分割”的意思。至少,该答案需要进一步阐述才能在这里有用。(顺便说一句,您的答案已更改为注释,因为在Web上其他任何地方都没有其他说明,而是对其他解决方案的交叉引用。)
whuber

2
从这里的评论来看,没有任何答案,我的建议是编辑您的问题,以纳入反馈并考虑提供赏金。
PolyGeo

Answers:


1

这是从凹入部分识别顶点的一些步骤:

带宗地:最小边界几何(船体)-> parcelHull

与宗地:FeatureVerticesToPoint-> parcelPoints

与parcelHull:FeatureVerticesToPoint-> parcelHullPoints

与parcelPoint和parcelHullPoint:对称的差异->凹点

根据这些点,您可以绘制等分线以切割多边形(到线的轴承距离),选择与您的点相交但不与宗地边界共享线段的Voronoï三角形的边缘(分割三角形后按位置选择在顶点处选择直线),选择相反位置的顶点并绘制一条线(点到线),选择相反边缘上最接近的点并绘制线(点到线)...

最后,使用您喜欢的线和带有“要素到多边形”的原始宗地来分割多边形。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.