Konzept (Entwurf)

06.06.2025

Lagekarten sind ein unverzichtbares Werkzeug für Hilfsorganisationen zur Koordination ihrer Ressourcen. Spezialisierte Einsatzleitsoftware stellt Rettungsdiensten entsprechende Funktionen bereit.

Aufgrund fehlender einheitlicher Schnittstellen können diese Anwendungen bei größeren Einsätzen mit mehreren beteiligten Organisationen bisher keinen nahtlosen Austausch von Lagekarten zwischen deren jeweiligen Software-Tools ermöglichen.

OpenGeoMesh ermöglicht eine sichere Zusammenarbeit an Lagekarten über verschiedene Organisationen und Tools hinweg, ohne Privatsphäre und Sicherheit zu gefährden. OpenGeoMesh ist Open Source und kann problemlos in bestehende Softwarelösungen integriert werden.

Obwohl das Projekt darauf abzielt, die Zusammenarbeit von Notfall- und Rettungsorganisationen zu erleichtern, ist es auch offen für Anwendungen und Implementierungen aus anderen Bereichen.

OpenGeoMesh is Free and Open Source

Softwareanbieter bieten spezialisierte Einsatzleitsoftware an, die auf die Bedürfnisse verschiedenster Rettungsorganisationen zugeschnitten sind. OpenGeoMesh kann frei in diese bestehenden Produkte integriert werden. Um den Integrationsaufwand zu minimieren, stellt das Projekt Spezifikationen, Dokumentationen, Demo Stacks, Open-Source-Bibliotheken und Docker-Container zur Verfügung.

OpenGeoMesh wird von einer Community von Rettungsdiensten und Softwareanbietern entwickelt, um die jeweiligen Funktionsanforderungen zu erfüllen und eine nahtlose Integration in bestehende Software-Stacks zu ermöglichen.

Starte eine Diskussion via Codeberg Issue in unserem Repo oder schreibe eine Mail an info@opengeomesh.org!

Basierend auf etablierten Standards

OpenGeoMesh basiert auf einer Kombination des Dateifreigabeprotokolls OpenCloudMesh (Zusammenfassung) und den OGC API Standards. Durch die Verwendung bestehender Standards kann OpenGeoMesh auf bestehenden Erfahrungen aufbauen und bereits existierende Open-Source-Implementierungen nutzen.

OpenCloudMesh wird verwendet, um den Server des Empfängers über die Freigabe einer Kartenebene (Collection) zu benachrichtigen. Kartenebenen können mit einzelnen Benutzern oder einer Gruppe geteilt werden, wobei die freigegebenen Daten auf dem sendenden Server verbleiben.

Im Vergleich zu alternativen Ansätzen wie Presigned URLs ermöglicht OpenCloudMesh die Kontrolle über sensible Daten zu behalten, da einzelnen Empfängern der Lese- oder Schreibzugriff auf Ressourcen gezielt gewährt oder entzogen werden kann.

OpenCloudMesh vermeidet es auch, Anmeldedaten und Endpunkte im Voraus austauschen zu müssen. Das Teilen einer Lagekarte erfordert lediglich die Eingabe der OpenCloudMesh-Adresse des Empfängers, wie z.B. user-id@feuerwehr-musterstadt.de oder FFW-Musterstadt@situation-map-software.com. Dies ist einfach genug, um vom Einsatzleiter auch während eines laufenden Rettungseinsatzes durchgeführt zu werden. Der optionale "Invite-Flow" begrenzt das Teilen auf vertrauenswürdige Parteien und vermeidet den Empfang unerwünschter Freigaben und Benutzerfehler.

Die OGC API-Standards werden für den Zugriff auf die geteilten Karten verwendet. Die OGC API-Standards definieren modulare API-Bausteine, die verwendet werden können, um verschiedene Funktionen für Geodaten bereitzustellen. OpenGeoMesh wird sich auf OGC API - Features konzentrieren, das folgende Endpunkte beinhaltet:

  • /collections: eine Liste der verfügbaren Kartenebenen
  • /collections/{collection-id}: Metadaten einer einzelnen Kartenebene
  • /collections/{collection-id}/items: Inhalt einer Kartenebene als GeoJson FeatureCollection
  • optional Unterstützung zum Bearbeiten von Features innerhalb von Kartenebenen:
  • /collections/{collection-id}/items: POST zum Erstellen eines neuen Features
  • /collections/{collection-id}/items/{item-id}: PUT zum Aktualisieren eines Features
  • /collections/{collection-id}/items/{item-id}: DELETE zum Löschen eines Features

Während die einzelnen Bausteine einfach zu implementieren sind, gibt es auch mehrere bereits existierende Open-Source-Implementierungen, die verwendet werden können.

Nahtlose Integration von OpenGeoMesh in bestehende Einsatzleitsoftware

OpenGeoMesh muss nahtlos in bestehende Einsatzleitsoftwares integriert werden, um die Nutzung während Rettungseinsätzen so einfach wie möglich zu machen. Die Einsatzkräfte müssen weiter ungehinderten Zugang zu den gewohnten Werkzeugen und spezialisierten Funktionen haben, gleichzeitig muss eine reibungslose Zusammenarbeit mit anderen Organisationen möglich sein.

Das OpenGeoMesh wird einen Docker Service bereitstellen, der das OpenCloudMesh Protokoll implementiert und als Proxy Zugriff auf freigegebene Kartenebenen anderer Organisationen erlaubt. Mit dem Docker Service kann der Aufwand für die Implementierung des OpenCloudMesh Protokolls in den einzelnen Einsatzleitsoftwares vermieden werden.

Zur Darstellung der empfangenen Kartenebenen kann der OpenGeoMesh Proxy als OGC API Features Server in den Kartenanwendungen der Einsatzleitsoftwares eingebunden werden. Dazu stehen für verschiedene Kartenframeworks Open-Source-Implementierungen bereit.

Um Kartenfreigaben versenden zu können müssen die Kartenebenen als OGC API - Features Collections (GeoJson Dateien) zur Verfügung gestellt werden.

Kontaktieren Sie uns via info@opengeomesh.org falls Sie Anforderung an das Protokoll haben, sich an der Entwicklung beteiligen oder mehr erfahren wollen.

Architektur Entwurf

  flowchart TD
    subgraph "Organisation A"
        subgraph "situation software A"
            db_A[(Database)]
            subgraph backend_A[Backend]
                api_A[Specialized API]
                ogc_A[OGC API]
            end
            ui_A(Frontend)
            subgraph "Docker Container"
                ogm_A[OpenGeoMesh]
            end
            db_A --> backend_A
            api_A -->|access local maps<br /> with specialized features| ui_A
            ogc_A <-->|access local maps| ogm_A
            ui_A -->|control shares| ogm_A
            ui_A <-->|access shared maps| ogm_A
        end
    
    end

    subgraph "Organisation B"
        subgraph "situation software B"
            db_B[(Database)]
            subgraph backend_B[Backend]
                api_B[Specialized API]
                ogc_B[OGC API]
            end
            ui_B(Frontend)
            ogm_B[OpenGeoMesh]
            db_B --> backend_B
            %%api_B -.-> ogc_B
            api_B -->|access local maps<br /> with specialized features| ui_B
            subgraph "Docker Container"
                ogm_B[OpenGeoMesh]
            end
            ui_B -->|control shares| ogm_B
            ui_B <-->|access shared maps| ogm_B
            ogc_B <-->|access local maps| ogm_B
        end
    

    end

    subgraph "Organisation C"
        subgraph "situation software C"
            db_C[(Database)]
            subgraph backend_C[Backend]
                ogc_C[OGC API]
            end
            ui_C(Frontend)
            ogm_C[OpenGeoMesh]
            db_C --> backend_C
            subgraph "Docker Container"
                ogm_C[OpenGeoMesh]
            end
            ogc_C <-->|access to local maps| ui_C
            ui_C -->|control shares| ogm_C
            ui_C <-->|access shared maps| ogm_C
            ogc_C <-->|access local maps| ogm_C
        end
    

    end


    ogm_B <==>|OpenCloudMesh Protocol| ogm_A
    ogm_B <==>|OpenCloudMesh Protocol| ogm_C
    ogm_A <==>|OpenCloudMesh Protocol| ogm_C
https://opengeomesh.org/posts/feed.xml