Stylesspecdraftimplcandidate
Veröffentlichung von Styles.
Umfang
Clients können Styles in den folgenden Style-Formaten entdecken, darauf zugreifen, sie verwenden und aktualisieren:
- Mapbox/MapLibre Style
- OGC SLD 1.0
- OGC SLD 1.1
- QGIS QML
- ArcGIS Desktop (lyr)
- ArcGIS Pro (lyrx)
- 3D Tiles Styling
Styles, die als Mapbox/MapLibre 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/MapLibre 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 ein neuer Style erstellt oder ein bestehender Style aktualisiert wird. |
Konfiguration
Speicherung
- MapLibre Stylesheets liegen im ldproxy-Datenverzeichnis unter dem relativen
Pfadstyles/{apiId}/{styleId}.mbs
(alt) oder im Store (neu)
als Values mit Typmaplibre-styles
und Pfad{apiId}/{styleId}
. Im letzten Fall wirdmbs
als Erweiterung weiterhin unterstützt, aber bevorzugt werden Stylesheets als normale
YAML- oder JSON-Dateien gespeichert. Die URIs (Sprites, Glyphs, Source.url,
Source.tiles) bei den Mapbox-Styles Links können dabei als Parameter{serviceUrl}
enthalten. - 3d Tiles Stylesheets liegen im ldproxy-Datenverzeichnis unter dem relativen
Pfadstyles/{apiId}/{styleId}.3dtiles
(alt) oder im Store (neu)
als Values mit Typ3dtiles-styles
und Pfad{apiId}/{styleId}
. Im letzten Fall wird3dtiles
als Erweiterung weiterhin unterstützt, aber bevorzugt werden Stylesheets als normale
YAML- oder JSON-Dateien gespeichert. - Andere Stylesheets liegen im ldproxy-Datenverzeichnis unter dem relativen
Pfadapi-resources/styles/{apiId}/{styleId}.{ext}
(alt) oder im Store (neu)
als Ressourcen mit Typother-styles
und Pfad{apiId}/{styleId}.{ext}
.
Die Dateikennung{ext}
muss den folgenden Wert in Abhängigkeit des Style-Formats haben:- OGC SLD 1.0:
sld10
- OGC SLD 1.1:
sld11
- QGIS QML:
qml
- ArcGIS Desktop:
lyr
- ArcGIS Pro:
lyrx
- OGC SLD 1.0:
- Die Style-Metadaten liegen im ldproxy-Datenverzeichnis unter dem relativen
Pfadapi-resources/styles/{apiId}/{styleId}.metadata
(alt) oder im Store (neu)
als Ressourcen mit Typother-styles
und Pfad{apiId}/{styleId}.metadata
. Links können dabei Templates
sein (d.h.templated
isttrue
) und als Parameter{serviceUrl}
enthalten.
Deprecated, die Unterstützung für Style-Metadaten wird in v4 entfernt.
Layerauswahl
Der Layerauswahldialog in der Webmap wird über die Option webmapWithLayerControl
aktiviert (siehe 'Optionen' unten).
Der Dialog kann in den Metadaten des MapLibre-Styles konfiguriert werden (Member ldproxy:layerControl
). Auf der obersten Ebene gibt es die folgenden Member:
onlyLegend
(Boolean, Default: false): Beitrue
werden nur die Gruppen und Layer mit den Symbolen angezeigt ohne die Möglichkeit, Layer zu deaktivieren.opened
(Boolean, Default: false): Beitrue
wird der Layerauswahldialog bei Laden der Karte geöffnet dargestellt.entries
(Default: eine Merge-Group pro Source-Layer in den Vector Tiles): Die Konfiguration der Gruppen und Layer, wie nachfolgend beschrieben.
In entries
sind die folgenden Einträge möglich:
- Die
id
eines MapLibre-Layers in dem Style (String). Der Layer wird im Dialog mit derid
als Namen dargestellt. Das Symbol des Layers wird ohne Angabe von Attributen oder eines bestimmten Zoomlayers erzeugt. - Ein Layer (Objekt).
id
ist dieid
das MapLibre-Layers in dem Style (String, Pflichtangabe).label
ist der Name des Layers im Dialog (String, Default:id
).zoom
ist die bei der Symbolerzeugung zu verwendende Zoomstufe (Nummer, Default: ohne).properties
sind bei der Symbolerzeugung zu verwendene Attribute (Objekt, Default{}
). - Eine Gruppe (Objekt).
type
ist immer "group".id
ist eineid
der Gruppe (String, Pflichtangabe).label
ist der Name des Gruppe im Dialog (String, Default:id
). MitonlyLegend
kann für die Gruppe die Möglichkeit deaktiviert werden, Layer zu deaktivieren (Boolean, Default:false
).entries
kann Layer (Objekte oder String), Gruppen oder Merge-Gruppen enthalten (Array, Default:[]
). - Eine Radio-Gruppe (Objekt). Sie darf nur auf der obersten Ebene der Einträge vorkommen. Aus der Gruppe kann nur genau ein Eintrag ausgewählt werden, z.B. für die Auswahl einer Basemap.
type
ist immer "radio-group".id
,label
wirken wie bei normalen Gruppen.entries
kann nur Layer (Objekte oder String) enthalten (Array, Default:[]
). - Eine Merge-Gruppe (Objekt).
type
ist immer "merge-group". Eine Merge-Gruppe ist eine Gruppe, bei derentries
nur Layer (Objekte oder String) enthalten darf (Array, Default:[]
); diese Einträge werden nicht als Untereinträge im Dialog dargestellt, sondern aus allen Layern wird zusammen ein Symbol erzeugt. Statt der Angabe vonentries
kann alternativ auchsource-layer
(String, Default: ohne) angegeben werden; in diesem Fall werden alle Layer mit diesem Source-Layer zu Einträgen.
Siehe unten für ein Beispiel.
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/MapLibre 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/MapLibre Style verfügbar ist. Siehe die Konformitätsklassen "Mapbox Style", "OGC SLD 1.0", "OGC SLD 1.1" und "HTML". Kommende Änderung Aktuell gibt es keinen Weg die Defaults Mapbox und HTML zu deaktivieren. Das wird sich in v4 ändern, die Defaults müssen dann wiederholt werden, wenn man zusätzliche Encodings angeben will. | 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 MapLibre-Stylesheet mit Layerauswahldialog:
{
"bearing": 0.0,
"version": 8,
"pitch": 0.0,
"name": "topographic",
"center": [36.1033, 32.6264],
"zoom": 12.241790506353492,
"metadata": {
"ldproxy:layerControl": {
"opened": true,
"entries": [
{
"id": "Basemap",
"type": "radio-group",
"entries": ["Grey Background", "OSM"]
},
{
"id" : "Agriculture (Surfaces)",
"type" : "merge-group" ,
"sourceLayer": "AgricultureSrf"
},
{
"id" : "Cultural (Points)",
"type" : "merge-group" ,
"sourceLayer": "CulturePnt"
},
{
"id" : "Cultural (Surfaces)",
"type" : "merge-group" ,
"sourceLayer": "CultureSrf"
},
{
"id" : "Facility (Points)",
"type" : "merge-group" ,
"sourceLayer": "FacilityPnt"
},
{
"id" : "Hydrography (Curves)",
"type" : "merge-group" ,
"sourceLayer": "HydrographyCrv"
},
{
"id" : "Hydrography (Surfaces)",
"type" : "merge-group" ,
"sourceLayer": "HydrographySrf"
},
{
"id" : "Military (Surfaces)",
"type" : "merge-group" ,
"sourceLayer": "MilitarySrf"
},
{
"id" : "Settlement (Surfaces)",
"type" : "merge-group" ,
"sourceLayer": "SettlementSrf"
},
{
"id" : "Structure (Points)",
"type" : "merge-group" ,
"sourceLayer": "StructurePnt"
},
{
"id": "Transportation - Ground (Curves)",
"type": "group",
"entries": [
{
"id": "National Road",
"type": "merge-group",
"entries": [
{"id": "National2", "zoom": 8},
{"id": "National1", "zoom": 8}
]
},
{
"id": "Secondary Road",
"type": "merge-group",
"entries": [
{"id": "Secondary2", "zoom": 8},
{"id": "Secondary1", "zoom": 8}
]
},
{
"id": "Local Road",
"type": "merge-group",
"entries": [
{"id": "Local1", "zoom": 8},
{"id": "Local2", "zoom": 8}
]
},
{
"id": "Bridge",
"type": "merge-group",
"entries": [
{"id": "Bridge1", "zoom": 8},
{"id": "Bridge2", "zoom": 8}
]
},
{
"id": "Railway",
"type": "merge-group",
"entries": ["Railway1", "Railway2"]
},
{ "id": "Name", "type": "merge-group", "entries": ["Name"] }
]
},
{
"id" : "Utility Infrastructure (Points)",
"type" : "merge-group" ,
"sourceLayer": "UtilityInfrastructurePnt"
},
{
"id" : "Utility Infrastructure (Curves)",
"type" : "merge-group" ,
"sourceLayer": "UtilityInfrastructureCrv"
},
{
"id" : "Vegetation (Surfaces)",
"type" : "merge-group" ,
"sourceLayer": "VegetationSrf"
}
]
}
},
"sources": {
"daraa": {
"type": "vector",
"tiles": ["{serviceUrl}/tiles/WebMercatorQuad/{z}/{y}/{x}?f=mvt"],
"maxzoom": 16
},
"osm": {
"type": "raster",
"tiles": [
"https://a.tile.openstreetmap.org/{z}/{x}/{y}.png",
"https://b.tile.openstreetmap.org/{z}/{x}/{y}.png",
"https://c.tile.openstreetmap.org/{z}/{x}/{y}.png"
],
"tileSize": 256,
"attribution": "©<a href=\"http://osm.org/copyright\"> OpenStreetMap</a>contributors"
}
},
"sprite": "{serviceUrl}/resources/sprites",
"glyphs": "https://go-spatial.github.io/carto-assets/fonts/{fontstack}/{range}.pbf",
"layers": [
{
"id": "Grey Background",
"type": "background",
"layout": {"visibility": "visible"},
"paint": {"background-color": "#d3d3d3"}
},
{
"id": "OSM",
"type": "raster",
"source": "osm",
"layout": {"visibility": "none"}
},
{
"type": "fill",
"source-layer": "AgricultureSrf",
"paint": {"fill-color": "#7ac5a5"},
"id": "agriculturesrf",
"source": "daraa"
},
{
"type": "fill",
"source-layer": "VegetationSrf",
"paint": {"fill-color": "#C2E4B9"},
"id": "vegetationsrf",
"source": "daraa"
},
{
"type": "line",
"source-layer": "SettlementSrf",
"paint": {"line-color": "#000000", "line-width": 2},
"id": "settlementsrf.1",
"source": "daraa"
},
{
"type": "fill",
"source-layer": "SettlementSrf",
"paint": {"fill-color": "#E8C3B2"},
"id": "settlementsrf.2",
"source": "daraa"
},
{
"type": "fill",
"source-layer": "MilitarySrf",
"paint": {"fill-color": "#f3602f", "fill-opacity": 0.5},
"id": "militarysrf",
"source": "daraa"
},
{
"type": "fill",
"source-layer": "CultureSrf",
"paint": {"fill-color": "#ab92d2", "fill-opacity": 0.5},
"id": "culturesrf",
"source": "daraa"
},
{
"type": "line",
"source-layer": "HydrographyCrv",
"filter": [ "==", "BH140", ["get", "F_CODE"] ],
"paint": {
"line-color": "#00A0C6",
"line-width": [ "step", ["zoom"], 1, 8, 2, 13, 4 ]
},
"id": "hydrographycrv",
"source": "daraa"
},
{
"type": "fill",
"source-layer": "HydrographySrf",
"filter": [ "==", "BH082", ["get", "F_CODE"] ],
"paint": {"fill-color": "#B0E1ED", "fill-outline-color": "#00A0C6"},
"id": "hydrographysrf",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AN010", ["get", "F_CODE"] ]
],
"layout": {"line-join": "round", "line-cap": "round"},
"paint": {"line-color": "#404040", "line-width": 4},
"id": "Railway1",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AN010", ["get", "F_CODE"] ]
],
"layout": {"line-join": "round", "line-cap": "round"},
"paint": {
"line-color": "#ffffff",
"line-dasharray": [6, 6],
"line-width": 2
},
"id": "Railway2",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AQ040", ["get", "F_CODE"] ],
[ "==", 13, ["get", "TRS"] ]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#000000",
"line-width": [ "step", ["zoom"], 1, 8, 9, 13, 20 ]
},
"id": "Bridge1",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AQ040", ["get", "F_CODE"] ],
[ "==", 13, ["get", "TRS"] ]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#ffffff",
"line-width": [ "step", ["zoom"], 1, 8, 6, 13, 14 ]
},
"id": "Bridge2",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AP030", ["get", "F_CODE"] ],
[ "==", 3, ["get", "RIN_ROI"] ]
],
"layout": {"line-join": "round", "line-cap": "round"},
"paint": {
"line-color": "#000000",
"line-width": [ "step", ["zoom"], 1, 8, 5, 13, 12 ]
},
"id": "National2",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AP030", ["get", "F_CODE"] ],
[ "==", 4, ["get", "RIN_ROI"] ]
],
"layout": {"line-join": "round", "line-cap": "round"},
"paint": {
"line-color": "#000000",
"line-width": [ "step", ["zoom"], 1, 8, 5, 13, 12 ]
},
"id": "Secondary2",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AP030", ["get", "F_CODE"] ],
[ "==", 5, ["get", "RIN_ROI"] ]
],
"layout": {"line-join": "round", "line-cap": "round"},
"paint": {
"line-color": "#000000",
"line-width": [ "step", ["zoom"], 1, 8, 3.5, 13, 9 ]
},
"id": "Local1",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AP030", ["get", "F_CODE"] ],
[ "==", 5, ["get", "RIN_ROI"] ]
],
"layout": {"line-join": "round", "line-cap": "round"},
"paint": {
"line-color": "#ffffff",
"line-width": [ "step", ["zoom"], 1, 8, 2, 13, 6 ]
},
"id": "Local2",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AP030", ["get", "F_CODE"] ],
[ "==", 4, ["get", "RIN_ROI"] ]
],
"layout": {"line-join": "round", "line-cap": "round"},
"paint": {
"line-color": "#cb171a",
"line-width": [ "step", ["zoom"], 1, 8, 3, 13, 8 ]
},
"id": "Secondary1",
"source": "daraa"
},
{
"type": "line",
"source-layer": "TransportationGroundCrv",
"filter": [
"all",
[ "==", "AP030", ["get", "F_CODE"] ],
[ "==", 3, ["get", "RIN_ROI"] ]
],
"layout": {"line-join": "round", "line-cap": "round"},
"paint": {
"line-color": "#ff0000",
"line-width": [ "step", ["zoom"], 1, 8, 3, 13, 8 ]
},
"id": "National1",
"source": "daraa"
},
{
"type": "symbol",
"source-layer": "TransportationGroundCrv",
"filter": [ "!=", "No Information", ["get", "ZI005_FNA"] ],
"layout": {
"text-field": "{ZI005_FNA}",
"text-size": 10,
"text-font": ["Metropolis Bold"],
"symbol-placement": "line"
},
"paint": {
"text-halo-color": "#ffffff",
"text-halo-width": 2,
"text-color": "#000000"
},
"id": "Name",
"source": "daraa"
},
{
"type": "line",
"source-layer": "UtilityInfrastructureCrv",
"filter": [ "==", "AT005", ["get", "F_CODE"] ],
"paint": {
"line-color": "#473895",
"line-width": [ "step", ["zoom"], 1, 8, 1, 13, 4 ]
},
"id": "utilityinfrastructurecrv",
"source": "daraa"
},
{
"type": "symbol",
"source-layer": "CulturePnt",
"layout": {"icon-image": "mosque_b", "icon-size": 0.4},
"paint": {"icon-opacity": 1},
"id": "culturepnt",
"source": "daraa"
},
{
"type": "symbol",
"source-layer": "StructurePnt",
"filter": [ "!=", "No Information", ["get", "ZI005_FNA"] ],
"layout": {
"icon-image": "square",
"icon-size": 0.15,
"text-field": "{ZI005_FNA}",
"text-size": 14,
"text-offset": [0, 1.5],
"text-font": ["Metropolis Bold"]
},
"paint": {
"icon-opacity": 1,
"text-halo-color": "#ffffff",
"text-halo-width": 2,
"text-color": "#000000"
},
"id": "structurepnt",
"source": "daraa"
},
{
"type": "circle",
"source-layer": "UtilityInfrastructurePnt",
"paint": {
"circle-radius": 3,
"circle-opacity": 0.5,
"circle-stroke-color": "#000000",
"circle-stroke-width": 1,
"circle-color": "#ffffff"
},
"id": "utilityinfrastructurepnt_circle",
"source": "daraa"
},
{
"type": "symbol",
"source-layer": "FacilityPnt",
"layout": {"icon-image": "circle_b", "icon-size": 0.2},
"paint": {"icon-opacity": 1},
"id": "facilitypnt",
"source": "daraa"
}
]
}
Beispiel für eine Style-Metadaten-Datei:
{
"title" : "topographic",
"links" : [ {
"rel" : "self",
"type" : "application/json",
"title" : "Dieses Dokument",
"href" : "https://demo.ldproxy.net/daraa/styles/topographic/metadata?f=json"
}, {
"rel" : "alternate",
"type" : "text/html",
"title" : "Dieses Dokument als HTML",
"href" : "https://demo.ldproxy.net/daraa/styles/topographic/metadata?f=html"
} ],
"id" : "topographic",
"scope" : "style",
"stylesheets" : [ {
"title" : "Mapbox",
"version" : "8",
"specification" : "https://docs.mapbox.com/mapbox-gl-js/style-spec/",
"native" : true,
"link" : {
"rel" : "stylesheet",
"type" : "application/vnd.mapbox.style+json",
"title" : "Style im Format 'Mapbox'",
"href" : "https://demo.ldproxy.net/daraa/styles/topographic?f=mbs"
}
} ],
"layers" : [ {
"id" : "background"
}, {
"id" : "agriculturesrf",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/AgricultureSrf/items"
}
}, {
"id" : "vegetationsrf",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/VegetationSrf/items"
}
}, {
"id" : "settlementsrf.1",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/SettlementSrf/items"
}
}, {
"id" : "settlementsrf.2",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/SettlementSrf/items"
}
}, {
"id" : "militarysrf",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/MilitarySrf/items"
}
}, {
"id" : "culturesrf",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/CultureSrf/items"
}
}, {
"id" : "hydrographycrv",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/HydrographyCrv/items"
}
}, {
"id" : "hydrographysrf",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/HydrographySrf/items"
}
}, {
"id" : "transportationgroundcrv.0a",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.0b",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.1",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.2",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.3",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.4",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.5",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.6",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.7",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.8",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "transportationgroundcrv.9",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/TransportationGroundCrv/items"
}
}, {
"id" : "utilityinfrastructurecrv",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/UtilityInfrastructureCrv/items"
}
}, {
"id" : "culturepnt",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/CulturePnt/items"
}
}, {
"id" : "structurepnt",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/StructurePnt/items"
}
}, {
"id" : "utilityinfrastructurepnt",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/UtilityInfrastructurePnt/items"
}
}, {
"id" : "facilitypnt",
"type" : "geometry",
"sampleData" : {
"rel" : "start",
"href" : "https://demo.ldproxy.net/daraa/collections/FacilityPnt/items"
}
} ]
}