Tworzenie linii równoległych w określonej odległości od linii, które są częścią pliku kształtu


11

Używam QGIS 2.18. Mam plik kształtu, który zawiera wiele wierszy. Po przetworzeniu określonego przetwarzania danych muszę narysować linie równoległe w różnych odległościach od linii istniejących. Na przykład mam 32 linie w istniejącym pliku shapefile. Chcę narysować równoległe linie w odległości 50, 100, 170, 500,400 od linii o numerze identyfikacyjnym. 3, 6,20,25,31 za jednym razem. Czy istnieje jakakolwiek metoda lub wtyczka w QGIS do robienia tego samego?

Odpowiedzi:


6

Możesz użyć wtyczki QAD , która oferuje polecenia podobne do CAD w QGIS.

Działa tylko z rzutowanymi układami współrzędnych (więc musisz rzutować swoje dane przed użyciem) i z włączonym trybem edycji (kliknij warstwę prawym przyciskiem myszy i wybierz Toggle Editing).

W twoim przypadku musisz kliknąć przycisk Offset :

wprowadź opis zdjęcia tutaj

i postępuj zgodnie z instrukcjami, które pojawią się w oknie tekstowym QAD (dokładnie tak jak w AutoCAD):

wprowadź opis zdjęcia tutaj

Na przykład jest to wynik, gdy używasz innego przesunięcia dla dwóch różnych funkcji:

wprowadź opis zdjęcia tutaj


Dzięki za odpowiedź. Czy jest jakaś inna metoda lub wtyczka do wykonania tego zadania bez wyświetlania danych?
Jitendra

Zastosowałem podejście z wyświetlanymi danymi, ponieważ wydawało się, że masz do czynienia z licznikami ( odległości 50, 100, 170, 500,400 .. ). Zmiana rzutowania jest bardzo prosta: kliknij warstwę prawym przyciskiem myszy, a następnie Save aswybierz projektowany układ współrzędnych. Po wykonaniu przesunięcia możesz wrócić do Geograficznego Układu Współrzędnych z operacją odwrotną ... Powinno być poprawne.
mgri

Bez wyświetlania danych musisz poradzić sobie z kątami zamiast z miernikami i nie wiem, czy stanie się to łatwiejsze ...
mgri

Narzędzie QAD działa dobrze. Ale muszę ręcznie powtórzyć zadanie dla wszystkich linii w pliku shapefile. Czy jest jakaś metoda automatycznego odczytu line_ID i odległości do linii z tabeli atrybutów lub pliku exel lub CSV i narysowania wszystkich równoległych linii jednocześnie.
Jitendra

Nie znam narzędzia, które spełnia to zadanie, ale mogę spróbować podać rozwiązanie za pomocą PyQGIS ... Czy może to być dla Ciebie interesujące?
mgri

6

Jeśli masz kolumnę w tabeli atrybutów, która określa odległość między liniami równoległymi, następująca metoda powinna być w stanie to zrobić za jednym razem -

Możesz użyć Single sided buffers (and offset lines) for linesalgorytmu GDAL/OGR > [OGR] Geoprocessingw przyborniku Przetwarzanie. Będziesz musiał ustawić Operację jako Krzywą Przesunięcia i wprowadzić nazwę kolumny zawierającej odległość w Odstęp buforowy (w moim przypadku nazwa kolumny to szerokość ). Możesz także ustawić, po której stronie linii powinna być narysowana linia równoległa, wybierając opcję Buforuj jako prawą lub lewą.

wprowadź opis zdjęcia tutaj


Dzięki za odpowiedź. Używam narzędzia OGR zgodnie z twoją sugestią, ale nic nie zostało pokazane w nowym wyjściowym pliku kształtowym.
Jitendra

Czy możesz udostępnić system projekcji, w którym znajduje się plik kształtu? Pomocne mogą być zrzuty ekranu tabeli atrybutów warstwy wyjściowej.
nash

System projekcji pliku kształtu to EPSG 4326
Jitendra

Rozumiesz więc, że nowe linie są tworzone w odległości 50 100,170,500 i 400, co jest w jednostkach Stopnie, a nie metry (co zakładam, że chcesz?)
nash

Zakładając, że potrzebujesz odległości w metrach - będziesz musiał przekonwertować plik shapefile w systemie projekcji z jednostkami w metrach (na przykład system projekcji UTM odpowiedniej strefy). Następnie uruchom algorytm.
nash

6

Możesz użyć „v.parallel”, możesz znaleźć to narzędzie w zestawie narzędzi do przetwarzania QGIS.

  1. Wybierz linię o numerze identyfikacyjnym linii. 3, 6,20,25,31 Wybierz linie

  2. Użyj „v.parallel”, utwórz linię równoległą z wybranych linii. Ale musisz zrobić wiele razy, aby uzyskać różne odległości przesunięcia (50, 100, 170, 500,400). Istnieje opcja „Side”, możesz przypisać lokalizację linii równoległych. „v.parallel”

  3. Wynik: równoległe linie (w kolorze niebieskim) po lewej stronie wybranych linii wynik

Dzięki Cy Y za odpowiedź. Użyłem polecenia v.parallel, ale nic nie zostało pokazane w nowym wyjściowym pliku kształtowym.
Jitendra

1
p / s: polecenie „v.parallel” działa tylko z liniami zakrzywionymi, nie może działać z liniami prostymi, które mają tylko dwa linie wierzchołków.
Cy T
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.