Podzielić warstwę wielokąta z warstwą linii?

12

Rysuję regiony administracyjne, których granice przebiegają ulicami w innej warstwie. Ponieważ te ulice są dość długie i mają wiele wierzchołków, nie chcę ich ponownie śledzić. Szukam sposobu na „podzielenie” narzędzia „podziel funkcje” wielokąta (tego z ikoną nożyczek).

Przed: jeden cały wielokąt z poprowadzoną przez niego linią

wprowadź opis zdjęcia tutaj

Po: linia działa jak para nożyczek i dzieli wielobok na 2 części (na poniższym zdjęciu wielokąty zostały rozłożone w celu zilustrowania wyłącznie celu)

wprowadź opis zdjęcia tutaj

Cao Minh Tu
źródło

Odpowiedzi:

8

Najpierw musisz połączyć oba kształty

wprowadź opis zdjęcia tutaj

Następnie aktywuj wtyczkę Polygonizer, aby przekształcić linie w wielokąty:

wprowadź opis zdjęcia tutaj

PieterB
źródło
Mój Ubuntu Qgis narzekał na brak zgrabnego.opsa, kiedy próbowałem zainstalować wtyczkę Polygonizer. W tej chwili nie wiem, jak to naprawić. Będę musiał rozwiązać ten problem przed wypróbowaniem twojego rozwiązania. Dzięki.
Cao Minh Tu
To działa. Tak długo zajęło mi zaakceptowanie twojej odpowiedzi, że nie wiedziałem, jak zainstalować shapely.ops. Okazuje się to bardzo łatwe: przejdź do centrum oprogramowania Ubuntu, wyszukaj „zgrabne” i zainstaluj jedyny pakiet foremny dla pythona. Potem mogłem zainstalować wtyczkę poligonizatora i wypróbowałem twoje rozwiązanie. Wielkie dzięki!
Cao Minh Tu
1
Nie mogę zainstalować wtyczki Polygonizer.
gregmacfarlane
4

Rozwiązałem ten problem za pomocą Processing Toolbox, używając Polygon-line intersectionalgorytmu SAGA .

Proces może się nie powieść (tzn. Bez podziału), jeśli koniec linii zostanie przyciągnięty do punktu wierzchołka wielokąta. Przedłużenie linii nieco do sąsiedniego wielokąta lub obszaru zewnętrznego dezynfekuje te pułapki.

AndreJ
źródło
1

To podobne pytanie dotyczy ArcGIS, ale może dostarczyć ci pomysłów z dyskusji, które możesz wdrożyć w QGIS.

Stworzyłem również model ArcGIS, który możesz replikować przy użyciu podobnych koncepcji w QGIS. Próbowałem opisać pojęcia, które tu zastosowałem .

RyanKDalton
źródło
Dziękuję za odpowiedź, ale w tej chwili ArcGIS lub umiejętność programowania nie są w moich możliwościach.
Cao Minh Tu
0

Jeśli dobrze rozumiem twoje pytanie, do konwersji wielokątów na linie można użyć polecenia GRASS v.type.bl. zobacz następujący post: Jak podzielić wielokąty na segmenty linii?

Kurt
źródło
Dodałem zdjęcia, aby wyjaśnić pytanie - wielkie dzięki.
Cao Minh Tu
@Cao Minh Tu: dzięki, zdjęcia wyjaśniają, źle cię zrozumiałem
Kurt,
0

Jeśli nie masz licencji ArcInfo , możesz użyć polecenia „ geom.splitpolysbylines ” w środowisku modelowania geoprzestrzennego . Działa idealnie. Upewnij się jednak, że posiadasz ArcGIS 10.1 lub ArcGIS 10.0 SP4 i masz zainstalowaną wersję „R” 2.12 lub nowszą.

Doum
źródło
Moje pytanie dotyczyło Qgis (pokazane w tagu) - zaktualizowałem nagłówek, aby był bardziej widoczny. W każdym razie dzięki!
Cao Minh Tu
1
Przepraszam za to. W każdym razie, jeśli „ktoś inny” ma to samo pytanie, skorzysta z opcji, którą zasugerowałem powyżej.
Doum