Konwersja linii na wielokąty w QGIS tworzy wielokąty Sliver

9

Podczas próby poligonizacji warstwy polilinii w PyQGIS przy użyciu

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

polecenie w konsoli Pythona, nie tworzy wielokątów odpowiadających krawędziom linii. Zamiast tego tworzy zakrzywione wielokąty wzdłuż zakrzywionych krawędzi. Dlaczego wielokąty nie są tworzone wzdłuż krawędzi linii?

wprowadź opis zdjęcia tutaj

Podczas poligonizacji czarne linie powinny być krawędziami utworzonych wielokątów. Zamiast tego tworzy się tylko kilka taśm wzdłuż zakrzywionych krawędzi (niebieskie wielokąty).

Sjs
źródło
Czy wypróbowałeś wersję narzędzia SAGA:processing.runandload("saga:convertlinestopolygons",explode_path,polygon_path)
Joseph
@Joseph wypróbował właśnie wersję SAGA. Mimo to wynik jest taki sam.
Sjs
1
Spróbuj wyczyścić plik kształtu linii za pomocą wtyczki Geometry Checker lub narzędzia GRASS v.clean .
Joseph
2
@Joseph, dane są topologicznie czyste. Uzyskaj pożądany wynik za pomocą narzędzia „Polygonize”. Dziękuję za komentarze.
Dowiedziałem się
Fajnie, cieszę się, że znalazłeś rozwiązanie =)
Joseph

Odpowiedzi:

8

Dostaję dokładne wielokąty zgodnie z potrzebami za pomocą algorytmu „Poligonize” (Processing Toolbox -> QGIS Geoal algorytmy -> Polygonize) w konsoli 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
źródło
0

Miał ten sam problem podczas korzystania z narzędzia „Linie do wielokątów” dostępnego w menu Wektor. Masz wiele małych wielokątów, mimo że dane są topologicznie poprawne.

„Poligonizuj”

Geoalgorytm QGIS dostępny na pasku narzędzi przetwarzania działał dla mnie.

Karthikeyan
źródło