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

9

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

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

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

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

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

SJS
источник
Пробовали ли вы версию инструмента 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)
SJS
источник
0

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

"Polygonize"

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

Картикеян
источник