Czy linie są zakrzywione przy użyciu QGIS?


10

Nie mam dużego doświadczenia z QGIS i pracuję nad mapą z liniami łączącymi lokalizacje utworzone za pomocą wtyczki mmqgis. Czy istnieje prosty sposób, aby te bezpośrednie linie były nieco zaokrąglone ze względów estetycznych?

Staram się osiągnąć coś takiego jak mapa poniżej, ale z kilkoma węzłami. Przeczytałem sugestie, jak to zrobić za pomocą PostGIS i innych zaawansowanych narzędzi, więc przeprowadziłem badania (w tym inne posty tutaj) i próbowałem użyć kilku wtyczek, a konkretnie proszę o łatwe rozwiązanie, ponieważ nie mieć duże doświadczenie.

Przykład


czy istnieje sposób na cofnięcie krzywej podczas edycji lub cofnięcie punktu, w którym przypadkowo ją umieściłeś?
3mm

Witamy w GIS SE! Jako nowy użytkownik koniecznie zapoznaj się z krótką prezentacją, aby dowiedzieć się o ukierunkowanym formacie pytań i odpowiedzi na tej stronie. Jeśli masz pytanie, użyj linku Zadaj pytanie zamiast publikować odpowiedź.
Andy

Jeśli masz nowe pytanie, zadaj je, klikając przycisk Zadaj pytanie . Dołącz link do tego pytania, jeśli pomaga to w zapewnieniu kontekstu. - Z recenzji
csk

Odpowiedzi:


6

Jeśli korzystasz z QGIS 2.12 lub nowszej wersji, w narzędziu „ Digitizing Toolbar ” będzie dostępne narzędzie „ Dodaj okrągły ciąg ”. Lub możesz spróbować „ wtyczki Spline ”.

(LHS) Dodaj narzędzie do łańcuchów okrągłych podczas digitalizacji, (RHS) Narzędzie do splajnu podczas digitalizacji

digitalizacja

Możesz zobaczyć narzędzie Dodaj okrągły sznur (LHS) rysuje linię kołową lub półkolistą, podczas gdy narzędzie Splajn (RHS) interpoluje punkty w celu dopasowania linii do krzywej splajn. Niezależnie od tego, co wybierzesz, wystarczy kliknąć 3 punkty: punkt początkowy, punkt krzywej i punkt końcowy.

I dostaniesz:

wynik

Istnieją inne narzędzia, takie jak CadTools, ale będzie to bardziej ekscytujące, jeśli znajdziesz je sam.


1
Dzięki. Nie chcę tworzyć linii, ale zakrzywiać (nie ręcznie) te, które już utworzyłem za pomocą mmqgis. Nie szukam też emocji, po prostu czegoś, co pozwoli wykonać zadanie. Dlatego tu przybyłem, więc każda pomoc byłaby mile widziana! :)
darj

1
Mam to, dzięki. Przepraszam, że się myliłem. Teraz rozumiem, że masz już linie Hub utworzone przez wtyczkę MMQGIS.
Kazuhito

6

Użyj stylu Strzałki zamiast prostego stylu linii.

Na przykład te linie o prostym stylu linii:

wprowadź opis zdjęcia tutaj

wyglądają tak w stylu Arrow:

wprowadź opis zdjęcia tutaj

Możesz wyłączyć głowice strzałek, ustawiając szerokość i długość główki na 0.

Jak widać, linia prosta zamienia się w prostą strzałkę, podczas gdy linie o środkowym wierzchołku stają się zakrzywionymi strzałkami. Położenie środkowego wierzchołka określa krzywą strzałki.

Aby przekształcić linie proste w zakrzywione strzałki, musisz dodać środkowy wierzchołek do każdej linii, a następnie przesunąć ten wierzchołek na tyle, aby wygenerować zakrzywioną strzałkę.

Użyj stylu Geometry Generator z typem Geometria: Linestring. Wyrażenie to utworzy linię z punktem środkowym 200 jednostek odległości na wschód i północ od pierwotnego punktu środkowego linii.

  make_line( start_point( $geometry), translate( centroid( $geometry), 200,200), end_point($geometry))

Zmień linię, aby była wyświetlana jako styl strzałki. Dostosuj wartości przesunięcia środka ciężkości w wyrażeniu generatora geometrii, aż będziesz zadowolony z kształtu strzałek. Jeśli chcesz, możesz ustawić je proporcjonalnie do długości oryginalnej linii, np $length/10. Pełne wyrażenie to:

make_line( start_point( $geometry), translate( centroid( $geometry), $length/10, $length/10), end_point($geometry))

Oto jak to wygląda, z oryginalnymi liniami w kolorze różowym i strzałkami generowanymi przez geometrię w kolorze czarnym:

wprowadź opis zdjęcia tutaj

Jeśli nie jesteś zadowolony z położenia linii środkowej, możesz je dostosować ręcznie. Najpierw przekonwertuj styl linii wygenerowany przez geometrię na rzeczywistą warstwę. Skopiuj wyrażenie z generatora geometrii do geometry by expressionnarzędzia (przybornik Przetwarzanie). Następnie użyj narzędzia Vertex Tool (pasek narzędzi do digitalizacji), aby ręcznie przesunąć wierzchołki.

Uwaga: Ta odpowiedź została udzielona w QGIS 3.4.


4

Musisz zrobić jeszcze kilka kroków: (Mam wersję holenderską, więc jeśli nie jest to właściwe tłumaczenie, przepraszam). Tak jak zrobił to @bugmenot, ale następnie ponownie wybierz Wypełnienie i zmień go z Standardowego wypełnienia Typu symbolu na: „Rand / Edge?: Arrow. W ostatnim „Wypełnieniu” zrobiłem efekt stopniowego wypełniania kolorów [geleiddelijke vulling]. Mam nadzieję, że to pomogło. wprowadź opis zdjęcia tutaj


Dzięki! Czy można dostosować kąt krzywej, aby był bardziej płaski, jak na obrazie, który opublikowałem?
darj

Nie sądzę, że to możliwe. Być może z pewnym skryptem w Pythonie, ale to nie jest mój puchar.
Willem,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.