Я ищу инструмент или алгоритм для обнаружения вогнутых многоугольников и разделения их на выпуклые многоугольники. Как объяснено на рисунке, синий многоугольник разбит на многоугольники A и B
Я использую Arcpy под Arcgis 10.1
arcpy
arcgis-10.1
arcgis-desktop
algorithm
geogeek
источник
источник
Ответы:
Вот несколько шагов для определения вершин из вогнутых частей:
с участком: минимальная ограничивающая геометрия (корпус) -> parcelHull
с посылкой: FeatureVerticesToPoint -> parcelPoints
с parcelHull: FeatureVerticesToPoint -> parcelHullPoints
с parcelPoint и parcelHullPoint: симметричный Diff -> concavePoints
основываясь на этих точках, вы можете либо нарисовать биссектрису, чтобы отрезать полигон (расстояние до линии), выбрать ребра треугольника Вороного, которые пересекают вашу точку, но не делят отрезок с границей участка (выберите по местоположению после разбиения треугольника). линии на вершинах), выберите вершину на противоположном участке и сделайте линию (указывает на линию), выберите ближайшую точку на противоположном крае и нарисуйте линию (указывает на линию) ...
В конце, используйте ваши предпочтительные линии и исходные участки с «Feature to Polygon», чтобы разделить полигоны.
источник