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:
| Typ | Variante | Beschreibung |
|---|---|---|
qgis | Tree | Übernimmt die Layer-Hierarchie des QGIS-Projekts als Baum |
qgisflat | Flat | Stellt alle QGIS-Layer auf einer einzigen Ebene dar |
wms | Tree | Übernimmt die Layer-Hierarchie des WMS-Dienstes als Baum |
wmsflat | Flat | Alle WMS-Layer werden auf einer Ebene zusammengefasst |
wfs | Tree | Übernimmt die Layer-Hierarchie des WFS-Dienstes als Baum |
wfsflat | Flat | Alle 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.
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:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
hidden | bool | Layer beim Start ausblenden |
selected | bool | Layer beim Start aktiviert anzeigen |
expanded | bool | Gruppe beim Start aufgeklappt anzeigen |
exclusive | bool | Nur ein Sublayer der Gruppe kann gleichzeitig sichtbar sein |
unfolded | bool | Gruppe selbst ausblenden, nur Sublayer anzeigen |
unlisted | bool | Layer 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
}
}
}
}