Stylesspecdraftimplcandidate
Veröffentlichung von Styles.
Umfang
Clients können Styles in den folgenden Style-Formaten entdecken, darauf zugreifen, sie verwenden und aktualisieren:
- Mapbox Style
- OGC SLD 1.0
- OGC SLD 1.1
- QGIS QML
- ArcGIS Desktop (lyr)
- ArcGIS Pro (lyrx)
- 3D Tiles Styling
Styles, die als Mapbox Style verfügbar sind, können von ldproxy verwendet werden, um Features und Vektorkacheln zu rendern, wenn MapLibre als Kartenclient verwendet wird. Styles, die als 3D Tiles Styling verfügbar sind, können von ldproxy verwendet werden, um Features und 3D Tiles zu rendern, wenn Cesium als Kartenclient verwendet wird. Siehe defaultStyle
in HTML, und style
in Features HTML und Tiles.
Limitierungen
Alle Formate eines Styles müssen separat erstellt und gepflegt werden. Die automatische Ableitung eines Stylesheets in einem anderen Format wird nicht unterstützt.
Die folgenden Einschränkungen gelten für die Style-Formate:
- Mapbox Style: Die Stylesheets werden in ein internes Java-Objekt geparst. Nicht alle Strukturen werden unterstützt oder validiert:
- Nur ein einzelnes Sprite wird unterstützt.
- Terrain wird nicht unterstützt.
- Textstrings (z.B. Farbwerte) werden nicht validiert.
filter
,layout
undpaint
Werte werden nicht validiert.- Interpolationsausdrücke werden nur in
layout
undpaint
Werten unterstützt. - Sources:
volatile
wird nicht unterstützt. - Vector-Sources:
promoteId
wird nicht unterstützt.
- 3D Tiles Styling: Die Stylesheets werden in ein internes Java-Objekt geparst. Textstrings in JSON werden nicht validiert. Der JSON-Schlüssel
defines
wird nicht unterstützt. - OGC SLD 1.0/1.1: Der Inhalt dieser Stylesheets wird anhand des XML-Schemas validiert.
- QGIS QML, ArcGIS Pro (lyrx), ArcGIS Desktop (lyr): Der Inhalt dieser Stylesheets wird nicht validiert.
Konformitätsklassen
Das Modul basiert auf den Vorgaben der Konformitätsklassen Core, Manage styles, Validation of styles, Mapbox Style, OGC SLD 1.0 und OGC SLD 1.1 aus dem Entwurf von OGC API - Styles. Die Implementierung wird sich im Zuge der weiteren Standardisierung der Spezifikation noch ändern.
Operationen
Ressource | Pfad | Methoden | Formate | Beschreibung |
---|---|---|---|---|
Styles | styles | GET | HTML, JSON | Mit dieser Operation wird die Liste der Styles abgerufen. Für jeden Style werden die ID, ein Titel, Links zum Stylesheet des Styles in jeder unterstützten Kodierung und der Link zu den Metadaten bereitgestellt. |
Style | styles/{styleId} | GET | 3D Tiles Declarative Styling, ArcGIS, ArcGIS Pro, HTML, Mapbox, QGIS, SLD 1.0, SLD 1.1 | Mit dieser Operation wird die Liste der Stylee abgerufen. Für jeden Style werden die ID, ein Titel, Links zum Stylesheet des Styles in jeder unterstützten Kodierung und der Link zu den Metadaten bereitgestellt. |
Style Metadata | styles/{styleId}/metadata | GET | HTML, JSON | Style-Metadaten sind wichtige Informationen über einen Style, damit Benutzer Styles für die Darstellung ihrer Daten erkennen und auswählen können und visuelle Style-Editoren Benutzeroberflächen für die Bearbeitung eines Styles bereitstellen können. Diese Operation gibt die Metadaten für den angeforderten Style als ein einziges Dokument zurück. Das Stylesheet des Styles enthält in der Regel auch einige der Metadaten. |
Collection Styles | collections/{collectionId}/styles | GET | HTML, JSON | Mit dieser Operation wird die Liste der Styles abgerufen. Für jeden Style werden die ID, ein Titel, Links zum Stylesheet des Styles in jeder unterstützten Kodierung und der Link zu den Metadaten bereitgestellt. |
Collection Style | collections/{collectionId}/styles/{styleId} | GET | 3D Tiles Declarative Styling, ArcGIS, ArcGIS Pro, HTML, Mapbox, QGIS, SLD 1.0, SLD 1.1 | Holt den Stil mit den Identifikator styleId . Die Liste der verfügbaren Stile kann unter /styles abgerufen werden. Nicht alle Stile sind in allen Formaten verfügbar. |
Collection Style Metadata | collections/{collectionId}/styles/{styleId}/metadata" | GET | HTML, JSON | Style-Metadaten sind wichtige Informationen über einen Style, damit Benutzer Styles für die Darstellung ihrer Daten erkennen und auswählen können und visuelle Style-Editoren Benutzeroberflächen für die Bearbeitung eines Styles bereitstellen können. Diese Operation gibt die Metadaten für den angeforderten Style als ein einziges Dokument zurück. Das Stylesheet des Styles enthält in der Regel auch einige der Metadaten. |
Styles, Style | styles, styles/{styleId} | DELETE, POST, PUT | 3D Tiles Declarative Styling, ArcGIS, ArcGIS Pro, HTML, Mapbox, QGIS, SLD 1.0, SLD 1.1 | Erzeugen, Ersetzen und Löschen von Styles. |
Style Metadata | styles/{styleId}/metadata | PATCH, PUT | HTML, JSON | Aktualisieren der Metadaten eines Styles. |
Collection Styles, Collection Style | collection/{collectionId}/styles, collection/{collectionId}/styles/{styleId} | DELETE, POST, PUT | 3D Tiles Declarative Styling, ArcGIS, ArcGIS Pro, HTML, Mapbox, QGIS, SLD 1.0, SLD 1.1 | Erzeugen, Ersetzen und Löschen von Styles einer Feature Collection. |
Collection Style Metadata | collection/{collectionId}/styles/{styleId}/metadata | PATCH, PUT | HTML, JSON | Aktualisieren der Metadaten eines Styles für eine Feature Collection. |
Pfad-Parameter
Name | Ressourcen | Beschreibung |
---|---|---|
collectionId | Styles, Style, Style Metadata | Der Identifikator der Feature Collection. |
styleId | Style, Style Metadata, Collection Style, Collection Style Metadata | Der lokale Identifikator der Dateiressource. |
Query Parameter
Name | Ressourcen | Beschreibung |
---|---|---|
f | Styles | Wählt das Ausgabeformat der Antwort. Wenn kein Wert angegeben wird, gelten die Standard-HTTP Regeln, d.h. der "Accept"-Header wird zur Bestimmung des Formats verwendet. |
f | Style | Wählt das Ausgabeformat der Antwort. Wenn kein Wert angegeben wird, gelten die Standard-HTTP Regeln, d.h. der "Accept"-Header wird zur Bestimmung des Formats verwendet. |
dry-run | Styles, Style, Style Metadata, Collection Styles, Collection Style, Collection Style Metadata | Bei true wird der Inhalt lediglich überprüft, ohne dass eine neuer Style erstellt oder ein bestehender Style aktualisiert wird. |
Konfiguration
Storage
Die Stylesheets, die Style-Metadaten und die Style-Informationen liegen als Dateien im Datenverzeichnis:
- Die Stylesheets müssen unter dem relativen Pfad
api-resources/styles/{apiId}/{styleId}.{ext}
liegen. Die URIs (Sprites, Glyphs, Source.url, Source.tiles) bei den Mapbox-Styles Links können dabei als Parameter{serviceUrl}
enthalten. Die Dateikennung{ext}
muss den folgenden Wert in Abhängigkeit des Style-Formats haben:- Mapbox Style:
mbs
- OGC SLD 1.0:
sld10
- OGC SLD 1.1:
sld11
- QGIS QML:
qml
- ArcGIS Desktop:
lyr
- ArcGIS Pro:
lyrx
- 3D Tiles Styling:
3dtiles
- Mapbox Style:
- Die Style-Metadaten müssen unter dem relativen Pfad
api-resources/styles/{apiId}/{styleId}.metadata
liegen. Links können dabei Templates sein (d.h.templated
isttrue
) und als Parameter{serviceUrl}
enthalten.
Optionen
Name | Default | Beschreibung | Typ | Seit |
---|---|---|---|---|
buildingBlock | Immer STYLES . | string | v3.1 | |
extensionType | Deprecated Siehe buildingBlock . | string | v3.1 | |
enabled | false | Soll das Modul aktiviert werden? | boolean | v3.1 |
caching | {} | Setzt feste Werte für HTTP-Caching-Header für die Ressourcen. | object | v3.1 |
styleEncodings | [ "Mapbox", "HTML" ] | Steuert, welche Formate für Stylesheets unterstützt werden sollen. Zur Verfügung stehen Mapbox Style ("Mapbox"), OGC SLD 1.0 ("SLD10"), OGC SLD 1.1 ("SLD11"), QGIS QML ("QML"), ArcGIS Layer ("lyr" und "lyrx"), 3D Tiles ("3D Tiles") und HTML ("HTML"). HTML ist ein reines Ausgabeformat im Sinne einer Webmap und wird nur für Styles unterstützt, für die ein Stylesheet im Format Mapbox Style verfügbar ist. Siehe die Konformitätsklassen "Mapbox Style", "OGC SLD 1.0", "OGC SLD 1.1" und "HTML". | array | v3.1 |
managerEnabled | false | Steuert, ob die Styles über POST, PUT und DELETE verwaltet werden können. Siehe die Konformitätsklasse "Manage styles". | boolean | v3.1 |
validationEnabled | false | Steuert, ob bei POST und PUT von Styles die Validierung der Styles über den Query-Parameter validate unterstützt werden soll. Siehe die Konformitätsklasse "Validation of styles". | boolean | v3.1 |
useIdFromStylesheet | boolean | v3.1 | ||
resourcesEnabled | false | Deprecated Siehe enabled in Modul Resources. | boolean | v3.1 |
resourceManagerEnabled | false | Deprecated Siehe managerEnabled in Modul Resources. | boolean | v3.1 |
defaultStyle | null | Deprecated Siehe defaultStyle in Modul HTML. | string | v3.1 |
deriveCollectionStyles | false | Nur wirksam bei Styles im Format Mapbox Style. Steuert, ob die Styles auf der Ebene der Collections aus den Styles aus der übergeordneten Style-Collection abgeleitet werden sollen. Voraussetzung ist, dass der Name der source im Stylesheet der {apiId} entspricht und der Name der source-layer der {collectionId} . Sofern ein Style für die Darstellung von Features im Modul FEATURES_HTML verwendet werden soll, sollte die Option aktiviert sein. | boolean | v3.1 |
webmapWithPopup | true | Steuert, ob bei Webkarten zu Styles im Format Mapbox Style ein Popup mit den Attributen zum obersten Objekt angezeigt werden soll. | boolean | v3.1 |
webmapWithLayerControl | false | Steuert, ob bei Webkarten zu Styles im Format Mapbox Style die Layer ein- und ausgeschaltet werden können. Ein- und ausgeschaltet werden können jeweils gebündelt alle Layer zu einer Feature Collection. | boolean | v3.1 |
layerControlAllLayers | false | Nur wirksam bei webmapWithLayerControl: true . Steuert, ob auch Kartenlayer, die nicht aus den Vector Tiles dieser API, z.B. eine Hintergrundkarte, ein- und ausgeschaltet werden können. | boolean | v3.1 |
Beispiele
Beispiel für die Angaben in der Konfigurationsdatei:
- buildingBlock: STYLES
enabled: true
styleEncodings:
- Mapbox
- HTML
deriveCollectionStyles: true
managerEnabled: false
validationEnabled: false
Beispiel für ein Mapbox-Stylesheet:
{
"bearing" : 0.0,
"version" : 8,
"pitch" : 0.0,
"name" : "kitas",
"center": [
10.0,
51.5
],
"zoom": 12,
"sources" : {
"kindergarten" : {
"type" : "vector",
"tiles" : [ "{serviceUrl}/collections/governmentalservice/tiles/WebMercatorQuad/{z}/{y}/{x}?f=mvt" ],
"maxzoom" : 16
},
"basemap" : {
"type" : "raster",
"tiles" : [ "https://sg.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web_grau/default/WEBMERCATOR/{z}/{y}/{x}.png" ],
"attribution" : "©<a href=\"http://www.bkg.bund.de\" class=\"link0\" target=\"_new\"> Bundesamt für Kartographie und Geodäsie</a>2017, <a href=\"http://sg.geodatenzentrum.de/web_public/Datenquellen_TopPlus_Open.pdf\" class=\"link0\" target=\"_new\"> Datenquellen</a>"
}
},
"sprite" : "{serviceUrl}/resources/sprites-kitas",
"glyphs": "https://go-spatial.github.io/carto-assets/fonts/{fontstack}/{range}.pbf",
"layers" : [ {
"id": "background",
"type": "raster",
"source" : "basemap"
}, {
"type" : "symbol",
"source-layer" : "governmentalservice",
"layout" : {
"icon-image" : "kita",
"icon-size" : 0.5
},
"paint" : {
"icon-halo-width" : 2,
"icon-opacity" : 1
},
"id" : "kita",
"source" : "kitas"
} ]
}
Beispiel für eine Style-Metadaten-Datei:
{
"id": "kitas",
"title": "Kindertageseinrichtungen",
"description": "(Hier steht eine Beschreibung des Styles...)",
"keywords": [ ],
"scope": "style",
"version": "0.0.1",
"stylesheets": [
{
"title": "Mapbox Style",
"version": "8",
"specification": "https://docs.mapbox.com/mapbox-gl-js/style-spec/",
"native": true,
"tilingScheme": "GoogleMapsCompatible",
"link": {
"href": "{serviceUrl}/styles/kitas?f=mbs",
"rel": "stylesheet",
"type": "application/vnd.mapbox.style+json",
"templated": true
}
}
],
"layers": [
{
"id": "governmentalservice",
"type": "point",
"sampleData": {
"href": "{serviceUrl}/collections/governmentalservice/items?f=json",
"rel": "data",
"type": "application/geo+json",
"templated": true
}
}
],
"links": [
{
"href": "{serviceUrl}/resources/kitas-thumbnail.png",
"rel": "preview",
"type": "image/png",
"title": "Thumbnail des Styles für Kindertagesstätten",
"templated": true
}
]
}