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?

Jitendra
quelle

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

mgri
quelle
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

nash
quelle
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
Cy T.
quelle
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