Masterportal

Benutzerdokumentation

Übersicht

Das Geoportal ist ein webbasiertes, modulares System zur Visualisierung, Analyse und Nutzung von Geodaten. Es umfasst verschiedene Komponenten für Datenhaltung, Dienste und Verwaltung. Das zentrale Frontend für die interaktive Kartenanzeige, Datenabfrage und -analyse bildet die Open-Source-Software Masterportal, die flexibel erweiterbar und für Desktop sowie mobile Endgeräte optimiert ist.

Instanzen und Einsatzbereiche

Es stehen mehrere Geoportal-Instanzen zur Verfügung:

Das Geoportal wird sowohl in einer Staging-Umgebung (Test, Entwicklung) als auch in der Produktivumgebung eingesetzt.

Zentrale Komponenten

Hauptschichten Diagramm

Dokumentationsstruktur

Die Benutzerdokumentation umfasst folgende Hauptbereiche:

Masterportal

Einleitung

Das Masterportal ist das zentrale, modulare Frontend für Geodatenportale, entwickelt für Städte, Kommunen und Organisationen. Es ermöglicht die interaktive Visualisierung, Analyse und Nutzung von Geodaten für Bürger:innen, Unternehmen und Verwaltung. Die Software ist Open Source, flexibel erweiterbar und für Desktop sowie mobile Endgeräte optimiert.

Hauptfunktionen

Installation der benutzerdefinierten Masterportal Instanzen

Die Installation erfolgt mittels Docker Compose über die bereitgestellte docker-compose.yml Datei.

Nach dem Start mit docker compose up sind die Masterportal-Instanzen auf <http://localhost:80> verfügbar.

Die Konfiguration der benutzerdefinierten Add-ons erfolgt über den gemounteten Ordner dyconfig. Dort liegt bereits eine exemplarische Konfiguration, die als Vorlage genutzt und entsprechend angepasst werden kann.

Einrichtung der lokale Entwicklungsumgebung

Kurzanleitung für lokale Entwicklung und Test:

  1. Repository klonen und ins Verzeichnis wechseln:

    git clone <repo-url>
    cd masterportal
    
  2. Abhängigkeiten installieren:

    npm install
    
  3. Entwicklungsserver starten:

    npm start
    
  4. Das Portal ist dann unter <http://localhost:8080> erreichbar.

Lokale Entwicklungsumgebung mittels Docker/Docker Compose

  1. Image bauen und starten:

    docker compose up --build
    
  2. Das Portal ist dann unter <http://localhost:80> erreichbar.

  3. Konfigurationsdateien in dynconfig/ sind als Volume eingebunden.

Zentrale Konfigurationsdateien

Das Masterportal verwendet mehrere zentrale Konfigurationsdateien, die das Verhalten, die Oberfläche und die angebundenen Dienste steuern. Im Folgenden werden die wichtigsten Dateien mit Beispielen erläutert. Ausführliche Dokumentation: https://www.masterportal.org/mkdocs/doc/Latest/User/Global-Config/

config.js

Die Datei config.js steuert die globale Grundkonfiguration des Portals und wird beim Start geladen. Sie enthält die Pfade zu den zentralen Konfigurationsdateien (services.json, style.json, config.json, rest-services.json) und kann zusätzliche Koordinatensysteme definieren. Neue Layer-, Style-, Portal- oder REST-Konfigurationsdateien werden hier eingebunden. Für weitere Sprachdateien oder Projektionen können zusätzliche Einträge ergänzt werden. Pfade sollten immer relativ zum Portalverzeichnis angegeben werden. Nach Änderungen ist ein Neustart des Portals erforderlich. Falsche oder absolute Pfade führen zu Ladefehlern, nicht unterstützte Projektionen werden ignoriert.

{
  layerConf: "./services.json",
  styleConf: "./style.json",
  portalConf: "./config.json",
  restConf: "./rest-services.json",
  namedProjections: [
    ["EPSG:25832", "+title=ETRS89/UTM 32N +proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs"]
  ]
}

config.json

Die Datei config.json definiert die Portaloberfläche, Menüs, Werkzeuge und die Layerstruktur. Sie steuert die Benutzeroberfläche, die verfügbaren Werkzeuge, die Sprache und die Startposition der Karte. Die Layerstruktur verweist auf die in services.json definierten Layer. Module und Werkzeuge können über das Feld mainMenu.modules aktiviert oder deaktiviert werden. Die Sprache wird über das Feld language gesetzt. Die Layer-IDs in layerConfig müssen exakt mit denen in services.json übereinstimmen. Syntaxfehler oder fehlende IDs verhindern das Laden des Portals.

{
  "portalConfig": {
    "map": {
      "baselayerSwitcher": {"active": true},
      "mapView": {"center": [10.7, 53.87], "zoom": 12},
      "startingMapMode": "2D"
    },
    "mainMenu": {"modules": ["search", "layer", "measure", "print", "draw"]},
    "language": "de"
  },
  "layerConfig": {
    "Layer": [
      {
        "id": "1",
        "name": "Luftbild Lübeck",
        "typ": "WMS",
        "url": "https://geoserver.staging.platform.smart-hl.city/geoserver/ows",
        "layers": "luftbild_luebeck",
        "format": "image/jpeg",
        "version": "1.3.0",
        "singleTile": false,
        "transparent": true,
        "minScale": "0",
        "maxScale": "1000000",
        "infoFormat": "text/html",
        "gfiAttributes": "ignore",
        "gfiTheme": "default",
        "layerAttribution": "Stadt Lübeck",
        "legend": false,
        "featureCount": "1",
        "fitCapabilitiesExtent": true,
        "crs": "EPSG:25832"
      }
    ]
  }
}

services.json

In der Datei services.json werden alle im Portal verfügbaren Dienste (WMS, WMTS, WFS, SensorThings, GeoJSON etc.) und deren technische Parameter definiert. Neue Layer, Datenquellen oder Dienste werden hier hinzugefügt. Die wichtigsten Felder sind die eindeutige Layer-ID, der Typ (z.B. WMS, WFS, WMTS, GeoJSON), die Service-URL und die Layernamen beim Dienst. Für 3D-Layer können zusätzliche Parameter wie altitudeMode, altitude und alwaysOnTop gesetzt werden. Für WFS-Layer sind Felder wie gfiAttributes, featureType und featureNS relevant. Die Datei sollte regelmäßig gepflegt und dokumentiert werden. Fehlerhafte oder doppelte Layer-IDs, falsche URLs oder fehlende Pflichtfelder führen zu Problemen beim Laden der Layer.

{
  "id": "1",
  "name": "Luftbild Lübeck",
  "url": "https://geoserver.staging.platform.smart-hl.city/geoserver/ows",
  "typ": "WMS",
  "layers": "luftbild_luebeck",
  "format": "image/jpeg",
  "version": "1.3.0",
  "singleTile": false,
  "transparent": true,
  "minScale": "0",
  "maxScale": "1000000",
  "infoFormat": "text/html",
  "gfiAttributes": "ignore",
  "gfiTheme": "default",
  "layerAttribution": "Stadt Lübeck",
  "legend": false,
  "featureCount": "1",
  "fitCapabilitiesExtent": true,
  "crs": "EPSG:25832"
}

style.json

Die Datei style.json legt das Aussehen und Verhalten von Vektorlayern wie WFS oder GeoJSON fest. Jeder Style erhält eine eindeutige styleId, die in der services.json beim jeweiligen Layer referenziert wird. Die Styles können einfach oder komplex sein und verschiedene Darstellungsregeln enthalten. Typische Parameter sind strokeColor, strokeWidth, fillColor, iconUrl, iconScale, opacity usw. Für 3D-Anwendungen können Symbolgröße und Sichtbarkeit angepasst werden. Fehler in der style.json, wie fehlende styleIds oder Syntaxfehler, führen dazu, dass Layer nicht korrekt dargestellt werden.

[
  {
    "styleId": "stadtgrenzenStyle",
    "rules": [
      {
        "style": {
          "strokeColor": "#0000ff",
          "strokeWidth": 3,
          "fillColor": "#cce5ff"
        }
      }
    ]
  }
]
----

rest-services.json

Die Datei rest-services.json definiert zusätzliche Webservices, die nicht direkt als Layer eingebunden werden (z.B. Druckdienste, Metadaten, Gazetteer, Routing, Exporte). Neue Zusatzdienste werden hier eingetragen. IDs und Typen sollten eindeutig vergeben und URLs korrekt angegeben werden. Die Datei ist optional, aber für viele Zusatzfunktionen notwendig. Fehlerhafte oder nicht erreichbare URLs sowie fehlende IDs oder Typen führen zu Problemen bei der Nutzung der Dienste.

{
  "id": "mapfish_internet",
  "name": "MapFishPrintService",
  "typ": "Print",
  "url": "https://printbase.de/printfolder/"
}

Layer, Dienste und Styling

__ In Produktions- und Staging-Umgebungen wird die Datei services.json automatisch über den UDP Manager bereitgestellt und die Datei style.json über den Styleserver ausgeliefert. Eine manuelle Pflege dieser Dateien ist dort in der Regel nicht erforderlich.

Typische Nutzungsschritte

  1. Navigation und Layer-Auswahl über den Layer-Manager (inkl. Such-, Filter- und Gruppierungsfunktionen)

  2. Sachdatenabfrage (GetFeatureInfo) durch Klick auf Kartenobjekte

  3. Suche nach Adressen oder Themen

  4. Nutzung von Mess-, Zeichen-, Druck- und Exportwerkzeugen

  5. Umschalten zwischen 2D- und 3D-Ansicht

  6. Mobile Nutzung über responsives Design

  7. Nutzung von Filter- und Suchfunktionen für Layer

  8. Exportfunktionen (Drucken, Teilen, Download)

  9. Unterstützung für Mehrsprachigkeit und Barrierefreiheit

Weitere Informationen

Geoserver

Einleitung

GeoServer ist ein Open-Source-Server, der in Java entwickelt wurde und das Teilen sowie Bearbeiten von Geodaten ermöglicht. Er ist auf Interoperabilität ausgelegt und kann Daten aus allen gängigen räumlichen Datenquellen über offene Standards veröffentlichen. Als gemeinschaftsgetriebenes Projekt wird GeoServer von einer weltweiten Community aus Einzelpersonen und Organisationen entwickelt, getestet und unterstützt. GeoServer ist OGC-zertifiziert und unterstützt die Standards WFS, WMS, WCS und WMTS.

Lokale Installation

Kurzanleitung für die Installation von GeoServer:

  1. Voraussetzungen: Java 8 oder höher

  2. Download: https://geoserver.org/download/

  3. Entpacken: Archiv an gewünschten Speicherort entpacken

  4. Starten:

    1. Windows: StartGeoServer.bat

    2. Linux/macOS: ./startup.sh

  5. Zugriff: http://localhost:8080/geoserver

Weitere Hinweise zur Konfiguration finden Sie in der offiziellen Dokumentation und im Installationsverzeichnis.

Benutzeroberfläche

Die GeoServer-Oberfläche besteht aus folgenden Hauptbereichen:

GeoServer Dashboard


Daten hinzufügen

Um Daten in GeoServer zu veröffentlichen:

  1. Navigieren Sie zu Daten → Datenspeicher.

GeoServer Datenspeicher

  1. Klicken Sie auf Neu und wählen Sie den Datentyp aus (z. B. Shapefile, PostGIS, GeoTIFF).

GeoServer neu Datenspeicher

  1. Geben Sie die Verbindungseinstellungen ein.

  2. Speichern Sie den Datenspeicher.

  3. Gehen Sie zu Layer → Neu und wählen Sie den hinzugefügten Datenspeicher aus.

GeoServer neu Layer

  1. Konfigurieren Sie die Layer-Eigenschaften (Titel, Stil, Koordinatensystem) und speichern Sie.

GeoServer Datenspeicher


Kartenansicht

Nach dem Hinzufügen von Layern können Sie diese:

GeoServer Layer Vorschau

Beispiel Layer in GeoServer

Integration und Besonderheiten im Masterportal Lübeck

Best Practices & Tipps

Beachten Sie folgende Empfehlungen für die Arbeit mit GeoServer:

Fehlerbehebung

Im Folgenden finden Sie typische Probleme und Hinweise zur Fehlerbehebung in GeoServer:

Weitere Informationen

UDP-Manager

Einleitung

Der UDP Manager ist ein zentrales Werkzeug zur Verwaltung von Geodaten innerhalb der Urban Data Platform Hamburg. Er dient dazu, Datensätze, Collections und Schnittstellen zentral zu verwalten und daraus automatisiert die Datei service-layers.json zu generieren, die für die Konfiguration der Service-Layer im Masterportal benötigt wird.

Diese Anleitung fasst zentrale Begriffe, Workflows und Lübeck-spezifische Hinweise zum UDP Manager zusammen – basierend auf der offiziellen Dokumentation und angepasst an lokale Anforderungen.

Lokale Installation

Kurzanleitung für lokale Entwicklung und Test:

  1. Voraussetzungen: Node.js (LTS), Git, optional Docker

  2. Repository klonen: git clone <https://bitbucket.org/geowerkstatt-hamburg/udp-manager.git>

  3. Abhängigkeiten installieren: npm install

  4. (Optional) Datenbank/Services starten: docker-compose up -d

  5. Backend starten: npm run dev

  6. Frontend starten:

    1. cd frontend

    2. npm install

    3. npm start

  7. Zugriff: Backend unter http://localhost:3000, Frontend unter http://localhost:4200

Grundbegriffe

Grundbegriffe Diagramm

Quelle: UDP Manager Dokumentation

Typischer Workflow im UDP Manager

Schritt 1: Datensatz anlegen

Schritt 2: Collection erstellen

Schritt 3: Attribute konfigurieren

Schritt 4: Schnittstelle anlegen

Integration und Besonderheiten im Masterportal Lübeck

Best Practices

Beachten Sie folgende Empfehlungen für die Arbeit mit dem UDP Manager:

Übersicht: Workflow im UDP Manager

Hier ist der Workflow mit den wichtigsten Feldern:

+----------------+
|   Datensatz    |
|----------------|
| Titel              |  // Name des Datensatzes
| Kurzname           |  // Eindeutiger Kurzname
| Beschreibung       |  // Beschreibung des Datensatzes
| Verantwortlich     |  // Verantwortliche Person/Organisation
| Freigabeebene      |  // Freigabe (z.B. intern, öffentlich)
| Status             |  // Status (z.B. aktiv, inaktiv)
| Kategorien         |  // (optional) Themenkategorien
| Schlagwörter       |  // (optional) Keywords
| Quelle             |  // (optional) Ursprungsquelle
+----------------+
        |
        v
+----------------+
|   Collection   |
|----------------|
| Name               |  // Name der Collection (eindeutig im Datensatz)
| Alternativname     |  // (optional) Alternativer Name
| Schema             |  // Datenbankschema (bei Vektor)
| Tabellenname       |  // Tabellenname (bei Vektor)
| Attribute          |  // Attributkonfiguration (Felder, Typen)
| Transparenz        |  // (optional) Transparenz
| Maßstabsbereich    |  // (optional) Maßstabsbereich (min/max)
| GFI-Optionen       |  // (optional) GetFeatureInfo-Konfiguration
| Stil/Legende       |  // (optional) Style/Legende (Styleserver für Vektor, SLD in GeoServer für WMS)
| Namespace          |  // (optional) Namespace
| API-Zugriff        |  // (z.B. Visualisierung, Download, SensorThings)
+----------------+
        |
        v
+----------------+
|  Schnittstelle |
|----------------|
| Typ                |  // WMS, WFS, WMTS, OAF, STA, etc.
| Endpunkt-URL       |  // Service-URL
| Layername          |  // Layername im Dienst
| CRS                |  // Koordinatenreferenzsystem(e)
| Version            |  // Dienstversion (z.B. 1.3.0)
| Software           |  // (optional) Backend-Software
| Server             |  // (optional) Servername
| Extern             |  // (optional) Externe Schnittstelle (ja/nein)
| Status             |  // (optional) Status der Schnittstelle
| Metadaten-ID       |  // (optional) Verknüpfte Metadaten
+----------------+
        |
        v
+------------------------+
| service-layers.json    |
|------------------------|
| Automatisch generiert  |
| Enthält Layer-Definition|
| für Masterportal       |
+------------------------+

Weitere Informationen