Mam plik kształtu z obszarami miasta, ale niestety plik kształtu zawiera tylko pojedyncze linie. Plik kształtu wygląda następująco:
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:
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.
Odpowiedzi:
Polygonize
Narzędzie z przybornika Processing nadal działa dobrze dla mnie na prostych liniach: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.
źródło
Tylko wskazówka, jeśli nie możesz znaleźć
Polygonize
narzędzia. W mojej instalacji QGIS 2.18.3 (Windows) nie mogłem znaleźćPolygonize
narzędziaVector geometry tools
w Toolbox. Trochę czasu zajęło mi uświadomienie sobie, że muszę zainstalowaćpython-shapely
bibliotekę z OSGeo4W (dzięki Nick Hopton: Perfect Polygons w QGIS ).źródło
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
źródło
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.
źródło
Mogę zaproponować użycie
"Virtual Layer"
przelotuLayer > Add Layer > Add/Edit Virtual Layer...
.Załóżmy, że mamy pięć elementów liniowych
"lines"
, patrz zdjęcie poniżej.Za pomocą następującego zapytania można osiągnąć wynik.
Wyjściowa warstwa wirtualna będzie wyglądać
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.clean
zestawu narzędzi GRASS.W przypadku, gdy linie mają przecięcie, możesz użyć ConvexHull z następującym zapytaniem
Bibliografia:
źródło
Jeśli polilinie nachodzą na siebie,
Polygonize
narzędzie nie może sobie z tym poradzić w następujący sposób:Jednak
Lines to polygons
narzędzie działa zgodnie z oczekiwaniami w następujący sposób:źródło