Erstellen paralleler Linien in einem bestimmten Abstand von Linien, die Teil eines Shapefiles sind


11

Ich verwende QGIS 2.18. Ich habe ein Shapefile, das mehrere Zeilen enthält. Nach der Verarbeitung bestimmter Datenverarbeitungen muss ich parallele Linien in unterschiedlichen Abständen von vorhandenen Linien zeichnen. Zum Beispiel habe ich 32 Zeilen in einem vorhandenen Shapefile. Ich möchte parallele Linien in einem Abstand von 50, 100, 170, 500, 400 von der Linien-ID-Nr. 3, 6,20,25,31 auf einmal. Gibt es eine Methode oder ein Plugin in QGIS, um dies zu tun?

Antworten:


6

Sie können das QAD- Plugin verwenden, das CAD-ähnliche Befehle in QGIS bietet.

Es funktioniert nur mit projizierten Koordinatensystemen (Sie müssen Ihre Daten also projizieren, bevor Sie sie verwenden) und mit aktiviertem Bearbeitungsmodus (klicken Sie mit der rechten Maustaste auf die Ebene und wählen Sie Toggle Editing).

Für Ihren Fall müssen Sie auf die Schaltfläche Versatz klicken :

Geben Sie hier die Bildbeschreibung ein

und befolgen Sie die Anweisungen, die im QAD-Textfenster angezeigt werden (genau wie in AutoCAD):

Geben Sie hier die Bildbeschreibung ein

Dies ist beispielsweise die Ausgabe, wenn ein anderer Versatz für zwei verschiedene Merkmale verwendet wird:

Geben Sie hier die Bildbeschreibung ein


Danke für deine Antwort. Gibt es eine andere Methode oder ein anderes Plugin, um diese Aufgabe auszuführen, ohne Daten zu projizieren?
Jitendra

Ich habe einen Ansatz mit projizierten Daten verwendet, da es sich anscheinend um Meter handelte ( Entfernungen von 50, 100, 170, 500, 400 .. ). Das Ändern der Projektion ist sehr einfach: Klicken Sie mit der rechten Maustaste auf die Ebene Save asund wählen Sie schließlich ein projiziertes Koordinatensystem aus. Sobald Sie den Versatz ausgeführt haben, können Sie mit der umgekehrten Operation zum geografischen Koordinatensystem zurückkehren ... Es sollte korrekt sein.
Mgri

Ohne die Daten zu projizieren, müssen Sie sich mit Winkeln anstatt mit Metern befassen, und ich weiß nicht, ob es für Sie einfacher wird ...
Mgri

Das QAD-Tool funktioniert einwandfrei. Aber ich muss die Aufgabe für alle Zeilen im Shapefile manuell wiederholen. Gibt es eine Methode, um line_ID und den Abstand zur gelesenen Zeile aus der Attributtabelle oder der Excel- oder CSV-Datei automatisch zu lesen und alle parallelen Linien gleichzeitig zu zeichnen?
Jitendra

Ich kenne kein Tool, das diese Aufgabe erledigt, aber ich kann versuchen, mit PyQGIS eine Lösung zu finden ... Könnte es für Sie von Interesse sein?
Mgri

6

Wenn Ihre Attributtabelle eine Spalte enthält, die den Abstand zwischen den parallelen Linien angibt, sollte die folgende Methode dies auf einmal tun können:

Sie können den Single sided buffers (and offset lines) for linesAlgorithmus unter GDAL/OGR > [OGR] Geoprocessingin der Verarbeitungs-Toolbox verwenden. Sie müssen die Operation als Versatzkurve festlegen und den Namen der Spalte mit dem Abstand in Pufferabstand eingeben (in meinem Fall lautet der Name der Spalte Breite ). Sie können auch festlegen, auf welcher Seite der Linie die parallele Linie gezeichnet werden soll, indem Sie die Pufferseite als rechts oder links auswählen .

Geben Sie hier die Bildbeschreibung ein


Danke für die Antwort. Ich verwende das OGR-Tool gemäß Ihrem Vorschlag, aber im neuen Ausgabe-Shapefile wurde nichts angezeigt.
Jitendra

Können Sie das Projektionssystem freigeben, in dem sich Ihre Formdatei befindet? Screenshots der Attributtabelle der Ausgabeschicht können hilfreich sein.
Nash

Projektionssystem von Shapefile ist EPSG 4326
Jitendra

Sie verstehen also, dass die neuen Linien in einem Abstand von 50.100.170.500 und 400 erstellt werden, der in der Einheit Grad und nicht Meter (was ich
Nash

Angenommen, Sie möchten die Entfernung in Metern angeben, müssen Sie Ihr Shapefile in ein Projektionssystem mit Einheiten in Metern konvertieren (z. B. ein UTM-Projektionssystem der entsprechenden Zone). Führen Sie dann den Algorithmus aus.
Nash

6

Sie können "v.parallel" verwenden. Sie finden dieses Tool in der QGIS-Verarbeitungs-Toolbox.

  1. Wählen Sie die Leitung mit der Leitungs-ID-Nr. 3, 6, 20, 25, 31 Linien auswählen

  2. Verwenden Sie "v.parallel" und erstellen Sie eine parallele Linie aus den ausgewählten Linien. Sie müssen jedoch mehrere Schritte ausführen, um unterschiedliche Versatzabstände (50, 100, 170, 500, 400) zu erzeugen. Es gibt eine Option "Seite", Sie können die Position der parallelen Linien zuweisen. "v.parallel"

  3. Ergebnis: parallele Linien (blau gefärbt) auf der linken Seite der ausgewählten Linien Ergebnis

Danke Cy Y für die Antwort. Ich habe den Befehl v.parallel verwendet, aber im neuen Ausgabe-Shapefile wurde nichts angezeigt.
Jitendra

1
p / s: Der Befehl "v.parallel" funktioniert nur mit gekrümmten Linien. Er kann nicht mit geraden Linien arbeiten, die nur einen Scheitelpunkt mit zwei Linien haben.
Cy T
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.