Layer

Layer sind die grundlegenden Bausteine einer Karte in der GBD WebSuite. Jeder Layer stellt eine Datenquelle dar und definiert, wie die darin enthaltenen Geodaten dargestellt werden. Layer werden innerhalb des map-Blocks eines Projekts konfiguriert und in der angegebenen Reihenfolge gerendert – der erste Eintrag liegt dabei ganz oben.

{
    map {
        layers+ {
            type "wms"
            title "Hintergrundkarte"
            ...
        }
        layers+ {
            type "postgres"
            title "Fachdaten"
            ...
        }
    }
}

Alle Layer-Typen teilen sich eine gemeinsame Basis-Konfiguration:

Raster-Layers

Raster-Layer liefern Geodaten als Rasterbild (PNG, JPEG). Die GBD WebSuite fragt dabei vom jeweiligen Dienst fertig gerenderte Kacheln oder Bilder ab und leitet diese an den Client weiter. Raster-Layer eignen sich besonders als Hintergrundkarten oder für Daten, die nur zur Visualisierung und nicht zur Abfrage vorgesehen sind.

QGIS

Der qgis-Layer bindet ein QGIS-Projekt als Kartenquelle ein. Die GBD WebSuite kommuniziert dabei über den QGIS Server und übernimmt die im QGIS-Projekt definierte Layer-Hierarchie und Darstellung.

{
    map {
        layers+ {
            type "qgis"
            title "Mein QGIS-Projekt"
            provider.path "/data/projekte/meinprojekt.qgs"
        }
    }
}

Ausführliche Informationen zur QGIS-Integration finden Sie unter QGIS.

WMS

Ein wms-Layer bindet einen externen WMS-Dienst (Web Map Service) ein. Die Layer-Struktur des Dienstes wird dabei als Baum in der GBD WebSuite abgebildet.

{
    map {
        layers+ {
            type "wms"
            title "Topographische Karte"
            provider.url "https://www.wms.nrw.de/geobasis/wms_nw_dtk"
        }
    }
}

WMTS

Ein wmts-Layer bindet einen WMTS-Dienst (Web Map Tile Service) ein. WMTS-Dienste liefern vorberechnete Kacheln und sind daher besonders performant.

{
    map {
        layers+ {
            type "wmts"
            title "Basiskarte"
            provider.url "https://basemap.de/wmts/1.0.0/WMTSCapabilities.xml"
        }
    }
}

Tile

Der tile-Layer dient zur Einbindung von XYZ/Slippy-Map-Kacheldiensten (z. B. OpenStreetMap). Die Kachel-URL wird mit den Platzhaltern {x}, {y} und {z} angegeben.

{
    map {
        layers+ {
            type "tile"
            title "OpenStreetMap"
            provider.url "https://tile.openstreetmap.org/{z}/{x}/{y}.png"
        }
    }
}

Kachel-Cache

Für Raster-Layer, die von externen Diensten abgefragt werden, kann ein lokaler Kachel-Cache aktiviert werden. Dadurch werden bereits abgerufene Kacheln zwischengespeichert und müssen bei erneuter Anfrage nicht erneut vom Dienst geladen werden.

{
    map {
        layers+ {
            type "wms"
            title "Hintergrundkarte"
            provider.url "https://..."
            cache {
                maxAge "7d"
                maxLevel 14
            }
        }
    }
}

Vector-Layers

Vektor-Layer liefern Geodaten als einzelne Objekte (Features) mit Geometrie und Attributen. Im Gegensatz zu Raster-Layern rendert die GBD WebSuite Vektor-Layer clientseitig und ermöglicht so Abfragen, Highlights und das Editieren einzelner Objekte.

GeoJSON

Der geojson-Layer liest Vektordaten aus einer lokalen GeoJSON-Datei.

{
    map {
        layers+ {
            type "geojson"
            title "Stadtteile"
            provider.path "/data/stadtteile.geojson"
        }
    }
}

PostgreSQL

Der postgres-Layer liest Vektordaten direkt aus einer PostGIS-Tabelle. Er unterstützt Abfragen, Editieren und die Verwendung von Datenmodellen.

{
    map {
        layers+ {
            type "postgres"
            title "Grundstücke"
            tableName "public.flurstuecke"
            dbUid "meine_datenbank"
        }
    }
}

Weitere Informationen zur Datenbankanbindung finden Sie unter PostgreSQL. Informationen zum Editieren von Objekten im Client finden Sie unter Editieren.

WFS

Ein wfs-Layer bindet einen externen WFS-Dienst (Web Feature Service) ein und stellt dessen Objekte als Vektor-Features dar.

{
    map {
        layers+ {
            type "wfs"
            title "Gewässer"
            provider.url "https://www.wfs.nrw.de/geobasis/wfs_nw_gewaesser"
        }
    }
}

Styling

Die Darstellung von Vektor-Layern lässt sich über CSS-Selektoren und Stilregeln anpassen. Die Eigenschaft cssSelector ermöglicht es, auf einzelne Feature-Klassen gezielt Styles anzuwenden.

{
    map {
        layers+ {
            type "postgres"
            title "Gebäude"
            tableName "public.gebaeude"
            cssSelector ".myLayer"
        }
    }
}

Flat/Tree/Group Layers

Die GBD WebSuite unterscheidet zwischen Tree-Layern, Flat-Layern und Gruppen-Layern. Diese Konzepte bestimmen, wie Layer-Hierarchien aus externen Quellen im Client dargestellt werden.

Tree-Layer und Flat-Layer

Einige Layer-Typen haben eine Tree-Variante und eine Flat-Variante:

TypVarianteBeschreibung
qgisTreeÜbernimmt die Layer-Hierarchie des QGIS-Projekts als Baum
qgisflatFlatStellt alle QGIS-Layer auf einer einzigen Ebene dar
wmsTreeÜbernimmt die Layer-Hierarchie des WMS-Dienstes als Baum
wmsflatFlatAlle WMS-Layer werden auf einer Ebene zusammengefasst
wfsTreeÜbernimmt die Layer-Hierarchie des WFS-Dienstes als Baum
wfsflatFlatAlle WFS-Layer werden auf einer Ebene zusammengefasst

Tree-Layer eignen sich, wenn die Quelllayer-Struktur im Client sichtbar und steuerbar sein soll. Flat-Layer sind praktisch, wenn alle Sublayer als eine einzige Einheit behandelt werden sollen.

Bei qgisflat und wmsflat ist kein einzelnes An- und Ausschalten von Sublayern möglich. Der gesamte Layer wird als Einheit dargestellt.

Gruppen-Layer

Mit dem group-Layer können mehrere Layer zu einer logischen Einheit zusammengefasst werden. Im Client erscheint die Gruppe als ein Eintrag im Ebenenbaum, der auf- und zugeklappt werden kann.

{
    map {
        layers+ {
            type "group"
            title "Hintergrundkarten"
            layers+ {
                type "wmts"
                title "Basiskarte farbig"
                ...
            }
            layers+ {
                type "wmts"
                title "Basiskarte grau"
                ...
            }
        }
    }
}

Client-Optionen

Mit clientOptions lässt sich das Verhalten eines Layers im Client steuern:

EigenschaftTypBeschreibung
hiddenboolLayer beim Start ausblenden
selectedboolLayer beim Start aktiviert anzeigen
expandedboolGruppe beim Start aufgeklappt anzeigen
exclusiveboolNur ein Sublayer der Gruppe kann gleichzeitig sichtbar sein
unfoldedboolGruppe selbst ausblenden, nur Sublayer anzeigen
unlistedboolLayer vollständig aus dem Ebenenbaum ausblenden
{
    map {
        layers+ {
            type "group"
            title "Hintergrundkarten"
            clientOptions {
                exclusive true
                expanded true
            }
            layers+ { ... }
        }
    }
}

autoLayers

Bei Tree-Layern (qgis, wms, wfs) werden die Sublayer automatisch aus der Quelle generiert. Mit autoLayers können für diese automatisch erzeugten Sublayer Standardwerte überschrieben werden – etwa um bestimmten Layern andere clientOptions zu geben, ohne jeden Sublayer einzeln konfigurieren zu müssen.

{
    map {
        layers+ {
            type "qgis"
            title "Stadtplan"
            provider.path "/data/stadtplan.qgs"
            autoLayers+ {
                applyTo.titles ["Hintergrund"]
                config.clientOptions.hidden true
            }
        }
    }
}