Layer¶
Ein layer in einem GBD WebSuite Projekt wird durch seinen type
identifiziert, zusätzlich haben Layer die folgenden Eigenschaften (wenn nicht explizit konfiguriert, wird er von der übergeordneten Ebene oder von der Map geerbt):
source
- wo die Ebene ihre Geodaten herbekommt (siehe sources)view
- räumliche Eigenschaften der Ebene (Umfang, erlaubte Auflösungen oder Skalen für diese Ebene)cache
undgrid
- beeinflussen das Layer-Caching (siehe Caching-Framework)clientOptions
- Optionen für den GBD WebSuite Client (siehe GBD WebSuite Client)attribute
- Layer-Metadaten (z. B. Attribution)meta
- Transfomationsregeln für Features (siehe Feature Transformation)
Layer Typen¶
Box¶
Ein Box-Layer ist vergleichbar mit einem konventionellen WMS-Layer. Er wird mit den WMS-Parametern bbox
, width
und height
abgefragt und gibt ein png
Bild zurück.
WMS¶
Sie können festlegen, welche Layer Sie verwenden möchten. Alle WMS-Layer werden neu projiziert, kombiniert und als einzelnes Bild angezeigt
{
"type": "wms",
"title": "Webatlas.de",
"sourceLayers": {
"names": ["dtk250"]
},
"url": "http://sg.geodatenzentrum.de/wms_dtk250"
}
WMTS¶
Wenn der Dienst mehrere Layer bereitstellt, können Sie angeben, welcher Layer verwendet werden soll
{
"type": "wmts",
"title": "NRW geobasis",
"sourceLayer": "DOP",
"url": "https://www.wmts.nrw.de/geobasis/wmts_nw_dop"
}
Kachel¶
Ein Kachel-Layer arbeitet als XYZ-Kachelquelle. Beachten Sie, dass in Abweichung von der allgemeinen Regel, Anfragen an Tile-Layer statische Anfragen imitieren, um clientseitiges Caching zu ermöglichen. Ein Beispiel für die Anforderung eines Kachellayer
http://example.org/_/cmd/mapHttpGetXyz/layer/project.layer/z/1/x/2/y/3/t.png
Gruppe¶
Gruppenlayer enthalten andere Layer, sie liefern selbst keine Geodaten. Neben der visuellen Gruppierung besteht ein weiterer Zweck einer Gruppe darin, die Zugriffs- oder Fallback-Cache- und Grid-Konfigurationen für ihre untergeordneten Layer beizubehalten. Eine Gruppe kann “virtuell” oder unfolded
erstellt werden, in diesem Fall wird sie im Client nicht angezeigt, während ihre untergeordneten Layer vorhanden sind.
Baum¶
Ein Baumlayer ist in der Lage, eine ganze Hierarchie von Layern aus einer WMS- oder QGIS-Quelle darzustellen. Ein Baumlayer wird als Gruppe im Client und mit Quellen als Unterknoten (oder leaves) angezeigt.
Es ist auch möglich, nur bestimmte Layer aus der Quelle auszuwählen. Beim Lesen der Quelle erzeugt der Server eine virtuelle path-Eigenschaft für jeden Layer, die die eindeutige ID des Layers und ihre übergeordneten ids enthält, ähnlich den Pfaden des Dateisystems, wie /root-layer-id/grandparent-id/parent-id/layer-id
. Das pathMatch
regex kann verwendet werden, um Layer mit passenden Pfaden zu filtern.
QGIS¶
QGIS-Layer sind ähnlich wie Baumlayer, funktionieren aber nur mit QGIS-Karten. Anstelle eines einzelnen pathMatch
können sie eine Liste von Matchregeln haben, die dem Server sagen, wie er mit passenden QGIS-Layern umgehen soll. Sie können z. B. einen bestimmten Layer “tilify oder einen bestimmten Teilbaum zu einem Layer “flatten”.
QGIS-Layer zeigen ganze QGIS-Projekte als einzelne Gruppe im GWS-Layerbaum an. Zusätzlich zu einem Layerfilter können Sie angeben, ob entfernte (z. B. WMS-) Layer direkt gerendert und / oder durchsucht werden sollen, oder den QGIS-Server verwenden:
{
"type": "qgis",
"title": "My qgis project",
"path": "/data/path/to/my-project.qgis",
"directRender": ["wms"]
}
QGISflat¶
QGIS / WMS-Layer zeigen einzelne Layer aus einem QGIS-Projekt als einzelnes flaches Bild an
{
"type": "qgisflat",
"title": "My qgis project",
"path": "/data/path/to/my-project.qgis",
"sourceLayers": [
"names": ["My First Layer", "My Second Layer"]
]
}
Vektor¶
Vektorlayer werden auf dem GBD WebSuite Client gerendert. Wenn ein Vektorlayer angefordert wird, sendet der Server die GeoJSON-Liste der Features und Stilbeschreibungen an den Client, der dann das eigentliche Rendering durchführt.
SQL¶
SQL-Layer übernehmen Geometrien aus einer SQL-Tabelle. Sie müssen nur den Datenbankanbieter und die zu verwendende Tabelle angeben
{
"title": "Houses",
"type": "sql",
"table": {
"name": "myschema.mytable",
"keyColumn": "id",
"geometryColumn": "geom"
},
"loadingStrategy": "bbox",
"style": {
"type": "css",
"text": "stroke:rgb(0,255,0); stroke-width:1px; fill:rgba(0,100,0,0.2)"
}
}