Преобразование линий в полигоны в QGIS приводит к появлению многоугольников


9

При попытке полигонизировать слой полилинии в PyQGIS, используя

processing.runandload("qgis:linestopolygons",explode_path,polygon_path)

Команда в консоли Python, она не создает полигонов, соответствующих краям линии. Вместо этого он создает многоугольники вдоль изогнутых краев. Почему полигоны не создаются по краям линии?

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

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


Пробовали ли вы версию инструмента SAGA:processing.runandload("saga:convertlinestopolygons",explode_path,polygon_path)
Джозеф

@Joseph попробовал версию SAGA только сейчас. Тем не менее результат тот же.
Sjs

1
Попробуйте очистить шейп-файл линии с помощью плагина Geometry Checker или инструмента GRASS v.clean .
Джозеф

2
@ Джозеф данные топологически чисты. Получили желаемый результат с помощью инструмента «Полигонизация». Спасибо за комментарии. Познакомились с парой топологических шашек :)
Sjs

Хороший, рад, что вы нашли решение =)
Джозеф

Ответы:


8

Получите нужные полигоны, используя алгоритм Polygonize (Processing Toolbox -> Geoalgorithms QGIS -> Polygonize) в консоли Python.

import processing
polygon_path = "C:\\Documents and Settings\\User\\polygonsFormed.shp"
line_path = "C:\\Documents and Settings\\User\\inputLine.shp"
processing.runandload("qgis:polygonize",line_path,False,False,polygon_path)

0

Возникла такая же проблема при использовании инструмента «Линии на полигоны», доступного в меню «Вектор». Получил много маленьких полигонов, хотя данные топологически верны.

"Polygonize"

У меня работал геоалгоритм QGIS, доступный на панели инструментов обработки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.