Czy istnieje funkcja QGIS lub wtyczka do rysowania krętej linii?
Użyłem narzędzia Spline do ręcznego rysowania niektórych fal, ale jest to czasochłonne. Jeśli to możliwe, chciałbym narysować coś takiego:
Inkscape Function Plotter
( sin(x)
krzywa).
qgis
line
visualisation
linestring
Kazuhito
źródło
źródło
Odpowiedzi:
Proponuję rozwiązanie za pomocą PyQGIS. Powinien działać zarówno dla warstw Linestring, jak i MultiLineString.
To rozwiązanie opiera się na tworzeniu półokrągłych pierścieni, dlatego należy ustawić wartość średnicy (tj.
step
Zmienną w poniższym kodzie). Wybrany krok nie będzie rzeczywistym krokiem, ponieważ jest dostosowywany na podstawie długości linii (ale byłby naprawdę podobny do początkowo ustawionej wartości). Musisz wykonać kilka prób, zanim znajdziesz najlepszą wartość dlastep
zmiennej.Kod wymaga również drugiego (opcjonalnego) parametru (tzw.
crv_angle
), Który pomaga zmniejszyć lub zwiększyć krzywiznę pierścieni (przeprowadziłem dla niego kilka testów, więc sugeruję pozostawienie 45 stopni jako domyślnego kąta, ponieważ prowadziłoby to do rzeczywistego kołowego pierścienie).Musisz tylko uruchomić ten kod z konsoli Python:
i utworzy nową warstwę pamięci linii z oczekiwanym rezultatem:
źródło
Krótka odpowiedź: możesz ją uzyskać za pomocą niestandardowego pliku SVG. Zobacz na dole tego postu dla jednego.
Długa odpowiedź:
Uważam, że lepiej go przedstawić, niż zmodyfikować geometrię linii. Jeśli chcesz przesunąć krawędź lub wykonać inne działania na geometrii, koszmarem byłoby poradzić sobie, jeśli wiggles są częścią geometrii, a nie tylko reprezentacją linii prostej.
Możesz grać za pomocą linii znaczników stylu. Istnieje sposób, aby łatwo zbliżyć się do tego, czego potrzebujesz, a przy odrobinie wysiłku możliwe jest uzyskanie tego dokładnie.
Aby to uzyskać, stylizujesz linię za pomocą dwóch linii znacznika. Każda linia znacznika składa się z prostego znacznika, półkola. Pierwszy jest obrócony o 180. Oba są ustawione na przezroczyste.
Na linii znacznika nakazujesz przesunięcie jednego z nich, aby dwa symbole nie były rysowane przed sobą, lecz obok siebie. Jeśli użyjesz odstępu offest = 1/2 *, wynikiem będzie krzywa sinusoidalna. Proponuję grać z rozmiarem interwału, przesunięciem i rozmiarami symboli.
Głównym ograniczeniem tego podejścia jest linia średnicy półokręgów, która sumuje się z linią pierwotną. Jeśli twoje tło jest białe (lub ma zwykły kolor), możesz dodać trzecią prostą linię, używając koloru tła.
** EDYCJA **
Inną opcją pozbycia się linii środkowej jest utworzenie nowego symbolu SVG. Zmodyfikowałem półkrzywę, żyjąc tylko zaokrągloną częścią. Działa, choć elipsa 1/2 może być bardziej atrakcyjna. Zrzut ekranu został wykonany przy użyciu symbolu o rozmiarze 10, interwał 4, przesunięcie 2.
zapisz poniższy kod w pliku half_circle_line.svg i upewnij się, że ścieżka do svg jest ustawiona w
QGIS // Settings / Options / System / SVG Paths
źródło
Pen style
na nr Pen :)