Lineare Referenzierung (Plugin-Release 2.1.0)

Diese QGis-Erweiterung unterstützt bei der Messung von Punkten/Abschnitten auf Referenz-Linien und der Erfassung linear referenzierter Datensätze.

Inhalt

Prinzip der Linearen Referenzierung

"Normale" Vektorlayer speichern Geometrien mittels numerischer Koordinaten (je nach Geometrietyp Einzelpunkte oder Punktfolgen mit X/Y-Koordinaten).

"Linear referenzierte" Layer verwenden dagegen numerische Stationierungen (Punkte oder Segmente) auf zugeordneten Linien-Geometrien.

referenzierbare Geometrietypen

Referenzierbar sind Punkte (im Weiteren "PoL", Point-on-Line) oder Abschnitte (im Weiteren "LoL", Line-on-Line) auf Linien.
PoL
Punktgeometrien mittels Linienzuordnung und numerischer Stationierung, z. B. Bauwerke an einem Gewässer:
LoL
Linienabschnitte mittels Linienzuordnung, zwei Stationierungen (Von...Bis) und einem Abstand zur Linie, z. B. Abschnitte an einem Gewässer:

Erforderliche Layer

Für Erfassung und Darstellung linear referenzierter Geodaten verwendet das Plugin drei Layer:
Reference-Layer
Basis-Layer, auf dessen Linien-Geometrien die linear referenzierten Datensätze numerisch positioniert werden.
  • Vektorlayer
  • alle QGis-unterstützen Datenformate (GeoPackage, SQLite, SpatiaLite, Shape, Geo-Datenbank...)
  • Typ (Multi-)LineString(-ZM)
  • eindeutiges ID-Feld (i. d. R. Primary Key)
  • einheitliche Digitalisier-Richtung
Data-Layer
Speichert die linear referenzierten Datensätze mittels Zuordnung zum Reference-Layer und Stationierung(en).
  • i. d. R. geometrieloser Vektor-Layer
  • alle QGis-unterstützen Datenformate (dBase, GeoPackage, SQLite, SpatiaLite, Datenbank, temporärer Scratch-Layer)
  • numerisches Stationierungsfeld (PoL) bzw. zwei Stationierungsfelder (Von...Bis) und ein Offset-Feld (LoL)
  • Verknüpfungsfeld zum Reference-Layer (gleicher Datentyp)
Show-Layer
Kartografische Darstellung der linear referenzierten Datensätze.
  • Vektorlayer, Geometrietyp Punkt (PoL) oder Linie (LoL)
  • Verknüpft Referenz- und Data-Layer (SQL)
  • virtueller Layer (SQL mit SpatiaLite, bei umfangreichen Daten evtl. wenig performant)
  • alternativ extern berechneter Vektorlayer (z. B. PostGIS-View) oder der exportierte virtuelle Layer
  • Gleiche Projektion wie Reference-Layer

"LR-Modus"

Die Positionierung eines Punktes auf einer Referenzlinie kann auf mehrere Arten erfolgen.
Nabs
absolute Lauflänge zum Startpunkt
Vorteile:
  • einfach verständlich, einfach messbar, einfach verifizierbar
  • einfaches numerisches Editieren (z. B. alle Abschnitte um ein konstantes Maß verschieben)
  • Einfache Berechnungen wie z. B. Abschnittslänge = Differenz Von...Bis-Stationierung
Nachteile:
  • projektionsabhängig: die Berechnung der Positionen erfolgt unter Verwendung der berechneten Längen, bei Umprojektion müssen die Stationierungen korrigiert werden
  • Der Maximalwert der Stationierung (= berechnete Gesamtlänge des Referenz-Shapes) ist zu beachten, das Einkürzen der Referenzlinie kann linear referenzierte Geometrien am Ende "abschneiden"
  • Änderungen der Referenzgeometrie beeinflussen je nach Lage die linear referenzierten Geometrien unterschiedlich:
    • Änderungen nach den berechneten Geometrien haben keinen Einfluss
    • Änderungen vor den berechneten Geometrien verschieben diese um das Maß der Längenänderung
Nfract
Positionierung relativ zur Gesamtlänge der Referenzlinie (0...1)
Vorteile:
  • einfache numerische Validierung der Stationierung (Wertebereich 0...1)
  • nicht projektionsabhängig
Nachteile:
  • In GIS/Natur nicht durch einfaches Nachmessen zu verifizieren
  • Änderungen der Referenzgeometrie beeinflussen alle relativ referenzierten Punkte/Segmente je nach Lage unterschiedlich
  • Abstandsberechnung zwischen den Punkten komplexer
Mabs
Verwendung von Vertex-M-Werten: jede Stützstelle hat neben X/Y noch einen weiteren numerischen Wert
Vorteile:
  • relativ unempfindlich gegen Editierungen (Lageänderungen) der Referenzgeometrien: nur die linear referenzierten Geometrien im Bereich der Referenz-Geometrie-Änderungen sind betroffen, die anderen bleiben unberührt
  • Positionierung unabhängig von Längenangaben (z. B. Stationierung mittels Zeitangaben aus GPS-Aufzeichnungen)
  • Vertex-M-Werte unabhängig von Projektion (z. B. metrischen Stationierung als Vertex-M-Wert in einem WGS-84-Reference-Layer)
  • Bereiche mit gestauchter/gestreckter Positionierung möglich
  • Stationierungen mit Offsets möglich, zum Beispiel geteilte Gewässer bei Grenzübertritt (Fortsetzung der M-Werte) oder sehr breite Einmündungsbereiche (Anfangevertices mit negativen M-Werten, Beginn der Stationierung bei M == 0 am Schnittpunkt der Uferlinien)
Nachteile:
  • In GIS/Natur nicht durch einfaches Nachmessen zu verifizieren
  • spezieller Layer-Typ mit Anforderungen an die Geometrien (einteilig, M-Werte monoton-ansteigend, siehe ST_IsValidTrajectory)
  • Neben den X/Y-Werten der Referenzgeometrie müssen auch die M-Werte bei Editierungen der Referenzgeometrie erfasst/korrigiert werden (z. B. via Vertex-Editor). So macht z. B. das Hinzufügen einer Stützstelle ohne M-Wert die Geometrie für die lineare Referenzierung unbrauchbar.
  • komplexere Positionierung der referenzierten Geometrien, da deren berechnete Lage sowohl von kartografisch sichtbar veränderten Referenzlinien (Vertex-X/Y-Koordinaten) als auch von kartografisch nicht sichtbaren Vertex-M-Werten beeinflusst werden.
  • numerisches Positionieren/Editieren ("verschiebe stationierten Punkt um 10m aufwärts") nicht möglich
  • absolute Abstandsberechnung zwischen Punkten komplex
Umrechnung:

Ein nachträglicher Wechsel des LR-Modes ist möglich, erfordert aber die Umrechung vorhandener Stationierungen.

Dies kann mittels Feldrechner erfolgen, alternativ mit Python-Script:
2025-12-03 LR-Convert.txt:
  1. Sicherheitskopie des Daten-Layers anlegen
  2. Skript in Python Console laden
  3. Tabellen- und Feldbezeichnungen anpassen
  4. Skript ausführen...

Anwendung

Vorbemerkungen

  • Das Plugin verwendet unabhängige Einstellungen und Dialoge (PoL/LoL), aufrufbar über Toolbar:
    oder Menü:
  • Einige Dialog-Elemente sind situations- und laufzeitumgebungsabhängig sichtbar/verwendbar, z. B. je nach Typ des verwendeten Reference-Layers:
Standard-Icons
(in beiden Dialogen mit gleicher Funktionalität verwendet)
  • Aufruf der zugeordneten Hilfeseite
  • Dialog andocken/loslösen
  • Datensatz-Formularöffnen
  • Attribut-Tabelle öffnen
  • Feature zoomen/highlighten
  • Feature in Layer selektieren

Messung, Datenerfassung

Für Messungen ist lediglich die Registrierung eines geeigneten Reference-Layers (LineString) erforderlich.

PoL
  1. Klick auf Dialog-Button zum Beginn der Messung
  2. Beim Mouse-Move auf der Karte bzw. auf Geometrien des Reference-Layers werden bereits Stationierungsdaten im Dialog angezeigt.
  3. Mit Klick auf die gewünschte Position auf dem Reference-Feature wird die Messung abgeschlossen, die Ergebnisse werden im Dialog angezeigt und fixiert, einige Funktionsicons zur Bearbeitung der linear referenzierten Geometrie werden enabled
LoL
Eine Messung wird mit Mouse-Down (Startpunkt), Mouse-Move und Mouse-Up (Endpunkt) auf einem Feature des Reference-Layers ausgeführt:
Datenerfassung
Die Speicherung neuer oder Bearbeitung vorhandener linear referenzierter Datensätze kann mit QGis-Bordmitteln (numerische Dateneingabe in Tabellen/Formularen...) und/oder Plugin-gestützt erfolgen:
Ablauf Insert:
  1. Messung durchführen (alternativ vorhandenes Feature selektieren und als Vorlage verwenden)
  2. Stationierungen bearbeiten (interaktiv, Funktionsicons, numerische Eingabefelder...)
  3. Feature hinzufügen (öffnet Attributformular mit aktuell angezeigten Stationierungen)
Ablauf Update
  1. vorhandenes Feature zur Bearbeitung selektieren (Einzelselektion auf Karte , aus Feature-Auswahlheraus oder via Layer-Actions aus Tabelle/Formular heraus)
  2. Stationierungen bearbeiten (interaktiv, Funktionsicons, numerische Eingabefelder...)
  3. Feature speichern (öffnet Attributformular des Features, aktuell angezeigte Stationierungen übernommen)

Feature-Auswahl

Benutzerdefinierbare Auswahl von Datensätzen zur Visualisierung und Bearbeitung.

Die Selektion kann auf der Karte , über Tabellen/Formulare des Data-Layers/Show-Layers (siehe Layer-Actions) oder mittels erfolgen.

Mit Hilfe des Plugins erfasste Datensätze werden ebenfalls in die Selektion aufgenommen.

Validierungsprobleme der Features (z. B. Stationierungen außerhalb Wertebereich, Referenz-Features nicht gefunden...) werden im Treeview mit entsprechenden Hinweisen symbolisiert.

PostProcessing

Änderungen einer Referenz-Geometrie beeinflussen die zugeordneten linear referenzierten Geometrien in Abhängigkeit von
  • der Art der Referenz-Geometrie-Änderung (Geometrie-Verschiebung, Vertices verschieben/hinzufügen/löschen, Vertex-M-Wert ändern)
  • der Lage der Änderungen (vor/hinter/im Bereich der linear-referenzierten Punkt/Segmente)
  • dem gewählten LR-Modus

"PostProcessing" ermöglicht die Kombination des Data-Layers mit einer alternativen Version des Referenz-Layers (gleicher Geometrie-Typ, Projektion und Referenz-Ids wie Referenz-Layer). Als Ergebnis werden die Datensätze gelistet, bei denen sich Referenzgeometrien und/oder die berechneten linear referenzierten PoL/LoL-Geometrien unterscheiden.

Von dieser Liste aus können die beiden Versionen kartografisch gegenübergestellt und die Stationierungen bei Bedarf angepasst werden.

Ablauf PostProcessing
Variante 1: Bearbeitung Data/Referenz-Layer im gleichen Projekt
  1. Falls erfoderlich: In den PostProcessing Einstellungen einen Vergleichs-Referenz-Layer mit den Ursprungsgeometrien erstellen/registrieren
  2. Geometriebearbeitung im Referenz-Layer durchführen
  3. PostProcessing starten, die geändertetn Referenz-Geometirien und die betroffenen linear referenzierten Geometrien werden identifiziert
  4. Stationierungen nachbearbeiten
Variante 2: Neue Version des Referenz-Layers (z. B. falls dessen Daten extern bearbeitet wurden)
  1. neue Version mit ID-Feld in den Einstellungen als Reference-Layer registrieren, neuen Show-Layer anlegen
  2. In den PostProcessing Einstellungen die bisherige Version mit ID-Feld als Vergleichs-Referenz-Layer registrieren
  3. PostProcessing starten, die betroffenen linear referenzierten Geometrien identifizieren und deren Stationierungen nachbearbeiten
Ergebnis PoL: LoL:

Einstellungen

Basis aller Anwendungen ist der "Reference-Layer", für die Datenspeicherung ist ein "Data-Layer" erforderlich, für die kartografische Darstellung ein "Show-Layer".

PoL
LoL

Sonstiges

Message-Log

System-Meldungen, Fehler, Debug-Metas (Datei/Zeile/Funktion/Backtrace als Tooltip)

Layer-Actions
In den registrierten Layern werden folgende Layer-Actions in Attribut-Tabellen/Formularen angezeigt:
Snapping

Die unter Einstellungen/Verschiedenes konfigurierbaren Snap-Einstellungen sind eine Untermenge der in QGis möglichen Advanced-Snap-Einstellungen und werden auf den Referenz-Layer angewendete.

Bei jeder Verwendung eines der Plugin-Maptools ersetzen diese Einstellungen die Snap-Einstellungen des aktuellen Projekts.

Impressum

Author:

Ludwig Kniprath

Mailto:

ludwig[at]kni-online.de

Plugin-Version:

2.1.0 (2026-01)

Plugin-Download:

LinearReferencing

Quell-Code und Tracker:

https://github.com/Ludwig-K/QGisLinearReference/

Lizenz:

GNU General Public License v3.0

Toc