Разделить слой многоугольника с линейным слоем?

12

Я рисую административные районы, границы которых следуют улицам в другом слое. Поскольку эти улицы довольно длинные с множеством вершин, я не хочу их пересматривать. Я ищу способ «разделить» многоугольник, как инструмент «разделить объекты» (тот, который имеет значок ножниц).

До: один целый многоугольник с линией, проходящей через него

введите описание изображения здесь

После: линия работает как ножницы и разбивает многоугольник на 2 части (на рисунке ниже, многоугольники были раздвинуты только для иллюстрации)

введите описание изображения здесь

Цао Минь Ту
источник

Ответы:

8

Сначала вы должны объединить обе фигуры

введите описание изображения здесь

Затем активируйте Polygonizerplugin, чтобы изменить форму линий на полигоны:

введите описание изображения здесь

PieterB
источник
Мой Ubuntu Qgis жаловался на отсутствие shapely.ops, когда я пытался установить плагин Polygonizer. Прямо сейчас я не знаю, как это исправить. Я должен решить эту проблему, прежде чем пробовать ваше решение. Благодарю.
Цао Минь Ту
Оно работает. То, что я так долго принимал твой ответ, было то, что я не знал, как установить shapely.ops. Получается очень просто: зайдите в центр программного обеспечения Ubuntu, найдите «shapely» и установите единственный пакет python-shapely. После этого я смог установить плагин полигонизатора и опробовать ваше решение. Большое спасибо!
Цао Мин Ту
1
Я не могу установить плагин Polygonizer.
gregmacfarlane
4

Я решил эту проблему с помощью Toolbox, используя Polygon-line intersectionалгоритм SAGA .

Процесс может завершиться неудачей (то есть без разделения), если конец линии привязан к точке вершины многоугольника. Немного расширяя линию в соседний многоугольник или за ее пределы, можно устранить эти подводные камни.

Andrej
источник
1

Этот похожий вопрос относится к ArcGIS, но может дать вам некоторые идеи из обсуждения, которые вы можете реализовать в QGIS.

Я также создал модель ArcGIS, которую вы можете реплицировать, используя аналогичные концепции в QGIS. Я попытался описать концепции, которые я использовал здесь .

RyanKDalton
источник
Спасибо за ваш ответ, но сейчас ArcGIS или навыки программирования не в моих силах.
Цао Минь Ту
0

Если я правильно понимаю ваш вопрос, команду GRASS v.type.bl можно использовать для преобразования полигонов в линии. см. следующий пост: Как разделить полигоны на отрезки?

Kurt
источник
Я добавил картинки, чтобы прояснить вопрос - большое спасибо.
Цао Мин Ту
@Cao Minh Tu: спасибо, фотографии проясняют, я вас неправильно понял
Курт
0

Если у вас нет лицензии ArcInfo , вы можете использовать команду " geom.splitpolysbylines " в среде геопространственного моделирования . Работает отлично. Однако убедитесь, что у вас есть ArcGIS 10.1 или ArcGIS 10.0 SP4 и установлена ​​версия «R» 2.12 или выше.

Doum
источник
У меня вопрос к Qgis (показанный в теге) - я обновил заголовок, чтобы сделать его более заметным. Спасибо, в любом случае!
Цао Мин Ту
1
Прости за это. В любом случае, если у «кого-то еще» такой же тип вопроса, он / она использует вариант, который я предложил выше.
Дума