Skip to content

Architektur

Das XMAS-Plugin ist die QGIS-Oberfläche der XMAS-App. In der App steckt die Fachlogik der Anwendungsschemas: Sie erzeugt die Attributformulare, prüft jede Eingabe und ist die einzige Komponente, die mit der Datenbank spricht.

flowchart LR
    QGIS["QGIS<br/>mit XMAS-Plugin"]
    APP["XMAS-App"]
    DB[("PostgreSQL")]
    KC["Keycloak"]

    QGIS -->|"HTTP(S)"| APP
    APP --> DB
    QGIS -.->|"Anmeldung"| KC
    APP -.-> KC

Die Komponenten

Komponente Aufgabe
QGIS mit XMAS-Plugin Darstellung, Digitalisierung und Erfassung. Hält die Planlayer und die Kartenansicht.
XMAS-App Erzeugt Datenbankschema und Attributformulare, validiert Eingaben und speichert Änderungen. Wird unabhängig vom Plugin installiert.
PostgreSQL Speichert die Pläne. Die Datenbank muss für die App erreichbar sein — nicht für QGIS.
Keycloak Übernimmt im Produktivbetrieb die Anmeldung. Für die lokale Entwicklung wird sie nicht benötigt.

Was das Plugin mit den Daten macht

Die Planlayer in QGIS sind keine Datenbanklayer. Beim Laden eines Plans holt das Plugin die Features einmal von der App und hält sie im Arbeitsspeicher. Jede Änderung — ein neues Feature, geänderte Attribute, eine verschobene Geometrie, ein gelöschtes Feature — geht zurück an die App, die sie prüft und erst dann speichert.

Für die tägliche Arbeit heißt das:

  • Ohne erreichbare XMAS-App lassen sich Pläne weder laden noch speichern.
  • Was die App ablehnt, wird nicht gespeichert; der Grund wird in QGIS gemeldet.
  • Änderungen anderer Bearbeiterinnen und Bearbeiter erscheinen nicht von selbst. Dafür muss der Plan neu geladen werden.

Weboberflächen im Plugin

Der Planmanager, die Planwerkzeuge und das Attributformular sind keine QGIS-Dialoge, sondern Seiten der XMAS-App, die im Plugin eingebettet sind. Deshalb wirken sie wie Webseiten — und deshalb brauchen sie eine bestehende Verbindung.

Eingebettete Seite und QGIS tauschen dabei laufend Ereignisse aus: Das Formular meldet geänderte Werte an QGIS, der Planmanager legt Layer an, aus der Karte heraus wird ein Feature im Formular geöffnet. Die Seite wird dafür nicht neu geladen.

Verbindung und Anmeldung

Die Adresse der XMAS-App und die zu verwendende Authentifizierungskonfiguration werden in den Einstellungen hinterlegt.

Neben Server Status im Panel zeigt eine Ampel, ob die App erreichbar ist:

Farbe Bedeutung
Grün verbunden
Gelb Verbindungsaufbau
Rot keine Verbindung

Das Plugin hält die Verbindung offen und baut sie nach einem Abbruch selbsttätig wieder auf. Wie die Anmeldung eingerichtet wird, beschreibt Authentifizierung.