У меня есть два полигона,
ПОЛИГОН ((- 5 -5, -5 5,5 5,5 -5, -5 -5)) ПОЛИГОН ((1 1, 1 7, 7 7, 7 1, 1 1))
и хочу разделить их равномерно. Результат должен быть разделен вдоль красной отмеченной линии.
Я использую qgis / python, и хочу сделать это с помощью python.
Ответы:
Я однажды использовал подход с вороными полигонами. Я сделал это вручную, и у меня есть только смутное представление о том, как вы могли бы сделать это с красивой, но вот как это происходит.
Сначала вы извлекаете вершины каждого перекрывающегося многоугольника и создаете из них многоугольники Вороного (вектор> инструменты геометрии> извлекать узлы и вектор> инструменты геометрии> vononoi). Получив форму, вы можете нарисовать линию, которая разделяет область перекрытия ровно на две части. (Ярко-зеленая линия)
Вы обрезаете слой вороной перекрывающимся многоугольником, удаляете перекрытие из исходных фигур и вставляете обрезанный многоугольник вороной обратно в исходные фигуры. Выберите, объедините, вуаля!
Теперь это выглядит немного грубо, потому что у меня действительно простые формы. Но если вы уплотните его (Вектор> Инструменты геометрии> Геометрия плотности) и добавите примерно 20 узлов между каждой существующей вершиной, вы можете получить это:
Который намного лучше. Легко, если у вас есть только небольшое количество форм для изменения.
источник