Przekształć linię w wielokąt

13

Mam plik kształtu z obszarami miasta, ale niestety plik kształtu zawiera tylko pojedyncze linie. Plik kształtu wygląda następująco:

wprowadź opis zdjęcia tutaj

Chcę przekonwertować te linie do pliku kształtu wielokąta obszaru w QGIS. Próbowałem z narzędziem „Linie do wielokątów” (Wektor> Narzędzia geometrii> Linie do wielokątów), ale nie działało to poprawnie. Po użyciu tego narzędzia plik kształtu wygląda następująco:

wprowadź opis zdjęcia tutaj

Czy istnieje inny sposób przekonwertowania pliku kształtu linii na plik kształtu wielokąta obszaru w QGIS?

Nawiasem mówiąc, używam QGIS 2.14.3 Essen.

Mark White
źródło
2
Przy ostatnim użyciu tego narzędzia dostałem coś podobnego. Udało mi się uzyskać wielokąty za pomocą narzędzia do poligonizacji.
john
Dziękujemy za odpowiedź, gdzie mogę znaleźć narzędzie do poligonizacji?
Mark White
Poligonize można znaleźć tutaj - Toolbox Processing, geoalgorytmy QGIS, narzędzia geometrii wektorowej.
klewis
Próbowałem, ale kiedy uruchamiam poligonizator, otrzymuję pusty plik kształtu :-(
Mark White
Czy możesz załadować plik kształtu do Dropbox lub podobnego?
AndreJ

Odpowiedzi:

16

PolygonizeNarzędzie z przybornika Processing nadal działa dobrze dla mnie na prostych liniach:

wprowadź opis zdjęcia tutaj

Konieczne jest jednak, aby linie przecinały się lub dzieliły wspólne wierzchołki. Linie nie powinny przecinać się.

Może być konieczne przyciągnięcie wierzchołków narożnika, aby działało. Zwykle ustawiam tolerancję przyciągania na 10 pikseli na wierzchołek.

AndreJ
źródło
1
Ja również napotkałem ten sam problem podczas przekształcania linii w wielokąty. Narzędzie „Poligonizacja” rozwiązało problem. gis.stackexchange.com/a/211794/62237
Sjs
7

Tylko wskazówka, jeśli nie możesz znaleźć Polygonizenarzędzia. W mojej instalacji QGIS 2.18.3 (Windows) nie mogłem znaleźć Polygonizenarzędzia Vector geometry toolsw Toolbox. Trochę czasu zajęło mi uświadomienie sobie, że muszę zainstalować python-shapelybibliotekę z OSGeo4W (dzięki Nick Hopton: Perfect Polygons w QGIS ).

Nicolo
źródło
Dziękuję Ci! Przez długi czas byłem zdezorientowany, ponieważ od razu QGIS w systemie Windows ma narzędzie do poligonizacji przeznaczone tylko dla rastrów. Kolejnym krokiem, który może, ale nie musi być konieczny, jest włączenie Geo-algorytmów QGIS w „Przetwarzaniu >> Opcje >> Dostawcy”
matt wilkie
Dziękuję za tę odpowiedź. Myślałem, że oszalałem, że już go nie znalazłem ...
gisnside
3

Patrząc na twój obraz, zakładam, że każda linia nie obejmuje w pełni obszaru, linie działają tylko jak ogrodzenia i nie łączą się ponownie na początku. Twoje wielokąty są tworzone z końców linii, więc narzędzie „linii do wielokątów” działa dobrze, to dane są problemem.

Obawiam się, że jedyne, co mogę zrobić, to myśleć o digitalizacji nowej warstwy wielokątów. Na szczęście QGIS bardzo ułatwił to dzięki narzędziu do digitalizacji śladów (ikona magnesu), które jest dostępne w 2.14

Ogar rycerski
źródło
0

Jeśli nie ma dziur, stworzyłbym warstwę rysy z jednym wielokątem wystarczająco dużym, aby pokryć cały obszar. Następnie przecinam go z wynikiem twoich linii do wielokątów i dzielę go dalej, jeśli to konieczne.

lynxlynxlynx
źródło
0

Testowane na QGIS 2.18 i QGIS 3.4

Mogę zaproponować użycie "Virtual Layer"przelotu Layer > Add Layer > Add/Edit Virtual Layer....

Załóżmy, że mamy pięć elementów liniowych "lines", patrz zdjęcie poniżej.

Przykład

Za pomocą następującego zapytania można osiągnąć wynik.

SELECT l.id, l.NAME, MakePolygon(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

Wyjściowa warstwa wirtualna będzie wyglądać

Wynik_1

Jak już wspomniano w @AndreJ, linie przecinają się lub dzielą wspólne wierzchołki. Linie nie powinny przecinać się. Jeśli chodzi o czyszczenie topologii warstwy, mogę zasugerować zbadanie v.cleanzestawu narzędzi GRASS.


W przypadku, gdy linie mają przecięcie, możesz użyć ConvexHull z następującym zapytaniem

SELECT l.id, l.NAME, ConvexHull(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

Walizka

Wynik


Bibliografia:

Taras
źródło
0

Jeśli polilinie nachodzą na siebie, Polygonizenarzędzie nie może sobie z tym poradzić w następujący sposób:

wprowadź opis zdjęcia tutaj

Jednak Lines to polygonsnarzędzie działa zgodnie z oczekiwaniami w następujący sposób:

wprowadź opis zdjęcia tutaj

M.Reza
źródło