Styles
specdraftimplcandidatePublish styles.
Scope
Clients can discover, access, use, and update styles in the following stylesheet encodings:
- Mapbox/MapLibre Style
- OGC SLD 1.0
- OGC SLD 1.1
- QGIS QML
- ArcGIS Desktop (lyr)
- ArcGIS Pro (lyrx)
- 3D Tiles Styling
Styles available as Mapbox/MapLibre Style can be used by ldproxy to render features and vector tiles where MapLibre is used as the map client. Styles available as 3D Tiles Styling can be used by ldproxy to render features and vector tiles where Cesium is used as the map client. See defaultStyle in HTML, and style in Features HTML and Tiles.
Limitations
All encodings of a style must be created and maintained separately. The on-the-fly derivation of a stylesheet in another stylesheet encoding is not supported.
The following limitations apply for the stylesheet encodings:
- Mapbox/MapLibre Style: The stylesheets are parsed into an internal Java object. Not all structures are
supported or validated:- Only a single sprite is supported.
- Terrain is not supported.
- Text strings (e.g., color values) are not validated.
filter,layoutandpaintvalues are not validated.- Interpolate expressions are only supported in
layoutandpaintvalues. - Sources:
volatileis not supported. - Vector sources:
promoteIdis not supported.
- 3D Tiles Styling: The stylesheets are parsed into an internal Java object. Text strings in
the JSON are not validated. Thedefineskey is not supported. - OGC SLD 1.0/1.1: The content of these stylesheets is validated against the XML Schema.
- QGIS QML, ArcGIS Pro (lyrx), ArcGIS Desktop (lyr): The content of these stylesheets is not validated.
Conformance Classes
This module implements requirements of the conformance classes Core, Manage Styles, Validation of styles, Resources, Manage resources, Mapbox Style, OGC SLD 1.0, OGC SLD 1.1, HTML and Style information from the draft specification OGC API - Styles. The implementation is subject to change in the course of the development and approval process of the draft.
Operations
| Resource | Path | Methods | Media Types | Description |
|---|---|---|---|---|
Styles | styles | GET | HTML, JSON | This operation fetches the list of styles. For each style the id, a title, links to the stylesheet of the style in each supported encoding, and the link to the metadata is provided. |
Style | styles/{styleId} | GET | 3D Tiles Declarative Styling, ArcGIS, ArcGIS Pro, HTML, Mapbox, QGIS, SLD 1.0, SLD 1.1 | This operation fetches the list of styles. For each style the id, a title, links to the stylesheet of the style in each supported encoding, and the link to the metadata is provided. |
Style Metadata | styles/{styleId}/metadata | GET | HTML, JSON | Style metadata is essential information about a style in order to support users to discover and select styles for rendering their data and for visual style editors to create user interfaces for editing a style. This operations returns the metadata for the requested style as a single document. The stylesheet of the style will typically include some the metadata, too. |
Collection Styles | collections/{collectionId}/styles | GET | HTML, JSON | This operation fetches the list of styles. For each style the id, a title, links to the stylesheet of the style in each supported encoding, and the link to the metadata is provided. |
Collection Style | collections/{collectionId}/styles/{styleId} | GET | 3D Tiles Declarative Styling, ArcGIS, ArcGIS Pro, HTML, Mapbox, QGIS, SLD 1.0, SLD 1.1 | Fetches the style with identifier styleId. The set of available styles can be retrieved at /styles. Not all styles are available in all style encodings. |
Collection Style Metadata | collections/{collectionId}/styles/{styleId}/metadata" | GET | HTML, JSON | Style metadata is essential information about a style in order to support users to discover and select styles for rendering their data and for visual style editors to create user interfaces for editing a style. This operations returns the metadata for the requested style as a single document. The stylesheet of the style will typically include some the metadata, too. |
Styles, Style | styles, styles/{styleId} | DELETE, POST, PUT | 3D Tiles Declarative Styling, ArcGIS, ArcGIS Pro, HTML, Mapbox, QGIS, SLD 1.0, SLD 1.1 | Create, Replace and Delete styles. |
Style Metadata | styles/{styleId}/metadata | PATCH, PUT | HTML, JSON | Update style metadata. |
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 | Create, Replace and Delete styles of a feature collection. |
Collection Style Metadata | collection/{collectionId}/styles/{styleId}/metadata | PATCH, PUT | HTML, JSON | Update style metadata of style for a feature collection. |
Path Parameters
| Name | Resources | Description |
|---|---|---|
collectionId | Styles, Style, Style Metadata | The identifier of the feature collection. |
styleId | Style, Style Metadata, Collection Style, Collection Style Metadata | The local identifier of the resource. |
Query Parameters
| Name | Resources | Description |
|---|---|---|
f | Styles | Select the output format of the response. If no value is provided, the standard HTTP rules apply, i.e., the "Accept" header will be used to determine the format. |
f | Style | Select the output format of the response. If no value is provided, the standard HTTP rules apply, i.e., the "Accept" header will be used to determine the format. |
dry-run | Styles, Style, Style Metadata, Collection Styles, Collection Style, Collection Style Metadata | If set to 'true', the operation just validates the content without creating a new style or updating an existing style. |
Configuration
Storage
- MapLibre stylesheets reside under the relative path
styles/{apiId}/{styleId}.mbsin
the data directory (old) or in the Store (new) as values with typemaplibre-stylesand path{apiId}/{styleId}. In the latter case the extensionmbsis
still supported, but preferably stylesheets are stored as plain YAML or JSON files. The URIs (Sprites,
Glyphs, Source.url, Source.tiles) used in MapLibre styles links might contain{serviceUrl}. - 3d Tiles stylesheets reside under the relative path
styles/{apiId}/{styleId}.3dtilesin
the data directory (old) or in the Store (new) as values with type3dtiles-stylesand path{apiId}/{styleId}. In the latter case the extension3dtiles
is still supported, but preferably stylesheets are stored as plain YAML or JSON files. - Other stylesheets reside under the relative path
styles/{apiId}/{styleId}.{ext}in
the data directory (old) or in the Store (new) as resources with typeother-stylesand path{apiId}/{styleId}.{ext}.
The file extension{ext}must have the following value depending on the style encoding:- OGC SLD 1.0:
sld10 - OGC SLD 1.1:
sld11 - QGIS QML:
qml - ArcGIS Desktop:
lyr - ArcGIS Pro:
lyrx
- OGC SLD 1.0:
- Style metadata reside under the relative path
styles/{apiId}/{styleId}.metadatain
the data directory (old) or in the Store (new) as resources with typeother-stylesand path{apiId}/{styleId}.metadata. Links
might be templates (by settingtemplatedtotrue) containing{serviceUrl}.
Deprecated, the support for style metadata will be removed in v4.
Layer Control
The layer control dialog in the webmap is activated via the webmapWithLayerControl option (see 'Options' below).
The dialog can be configured in the MapLibre style metadata (member ldproxy:layerControl). On the top level there are the following JSON members:
onlyLegend(Boolean, default: false): Withtrueonly the groups and layers with the symbols are displayed without the possibility to deactivate layers.opened(Boolean, default: false): Iftrueis set, the layer selection dialog will be displayed open when the map is loaded.entries(default: one merge group per source layer in the vector tiles): The configuration of the groups and layers as described below.
In entries the following items allowed:
- The
idof a MapLibre layer in the style (string). The layer is displayed in the dialog with theidas name. The symbol of the layer is created without specifying attributes or a particular zoom layer. - A layer object.
idis theidof the MapLibre layer in the style (string, mandatory).labelis the name of the layer in the dialog (string, default:id).zoomis the zoom level to use when creating symbols (number, default: none).propertiesare attributes (object, default{}) to be used during symbol generation. - A group object.
typeis always "group".idis anidof the group (string, mandatory).labelis the name of the group in the dialog (string, default:id). WithonlyLegendthe possibility to disable layers can be disabled for the group (Boolean, default:false).entriescan contain layers (objects or string), groups or merge groups (array, default:[]). - A radio group object. It may only occur on the top level of entries. Only exactly one entry can be selected from the group, e.g. for the selection of a basemap.
typeis always "radio-group".id,labelhave the same effect as for normal groups.entriescan only contain layers (objects or string) (array, default:[]). - A merge group object.
typeis always "merge-group". A merge group is a group whereentriesmay only contain layers (objects or string) (array, default:[]); these entries are not displayed as subentries in the dialog, but a symbol is created from all layers together. Instead of specifyingentries,source-layer(string, default: none) can be specified alternatively; in this case, all layers with this source layer become entries.
For an example, see below.
Options
| Name | Default | Description | Type | Since |
|---|---|---|---|---|
buildingBlock | Always STYLES. | string | v3.1 | |
extensionType | Deprecated See buildingBlock. | string | v3.1 | |
enabled | false | Enable the building block? | boolean | v3.1 |
caching | {} | Sets fixed values for HTTP Caching Headers for the resources. | object | v3.1 |
styleEncodings | [ "Mapbox", "HTML" ] | List of enabled stylesheet encodings. Supported are 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") and HTML (HTML). HTML is an output only encoding for web maps that requires a Mapbox/MapLibre Style stylesheet. For details see conformance classes Mapbox Style, OGC SLD 1.0, OGC SLD 1.1 und HTML. Upcoming change Currently there is no way to disable the defaults Mapbox and HTML. That will be changed in v4, you will then have to repeat the defaults if you want to add additional encodings. | array | v3.1 |
managerEnabled | false | Option to manage styles using POST, PUT and DELETE. If styleInfosOnCollection is enabled, style information may be created and updated using PATCH. Siehe die Konformitätsklasse "Manage styles". | boolean | v3.1 |
validationEnabled | false | Option to validate styles when using POST and PUT by setting the query parameter validate. For details see conformance class Validation of styles. | boolean | v3.1 |
useIdFromStylesheet | boolean | v3.1 | ||
resourcesEnabled | false | Deprecated See enabled in Modul Resources. | boolean | v3.1 |
resourceManagerEnabled | false | Deprecated See managerEnabled in Modul Resources. | boolean | v3.1 |
defaultStyle | null | Deprecated See defaultStyle in Modul HTML. | string | v3.1 |
deriveCollectionStyles | false | Only applies to styles in Mapbox Style format. Controls whether the styles at the collection level should be derived from the styles in the parent style collection. The prerequisite is that the name of the source in the stylesheet corresponds to {apiId} and the name of the source-layer corresponds to {collectionId}. If a style is to be used for displaying features in the FEATURES_HTML module, the option should be enabled. | boolean | v3.1 |
webmapWithPopup | true | Option to support popups in web maps for Mapbox Style styles that show attributes for the top-most object. | boolean | v3.1 |
webmapWithLayerControl | false | Option to support layer controls in web maps for Mapbox Style styles. Allows to collectively enable and disable all layers for a certain feature collection. | boolean | v3.1 |
layerControlAllLayers | false | Option to support layer controls for additional layers like background maps. Requires webmapWithLayerControl: true. | boolean | v3.1 |
Examples
Example of the specifications in the configuration file:
- buildingBlock: STYLES
enabled: true
styleEncodings:
- Mapbox
- HTML
deriveCollectionStyles: true
managerEnabled: false
validationEnabled: false
webmapWithLayerControl: true
Example MapLibre stylesheet with layer control options
{
"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": "transportationgroundcrv.3", "zoom": 8},
{"id": "transportationgroundcrv.4", "zoom": 8}
]
},
{
"id": "Secondary Road",
"type": "merge-group",
"entries": [
{"id": "transportationgroundcrv.5", "zoom": 8},
{"id": "transportationgroundcrv.6", "zoom": 8}
]
},
{
"id": "Local Road",
"type": "merge-group",
"entries": [
{"id": "transportationgroundcrv.7", "zoom": 8},
{"id": "transportationgroundcrv.8", "zoom": 8}
]
},
{
"id": "Bridge",
"type": "merge-group",
"entries": [
{"id": "transportationgroundcrv.0a", "zoom": 8},
{"id": "transportationgroundcrv.0b", "zoom": 8}
]
},
{
"id": "Railway",
"type": "merge-group",
"entries": ["transportationgroundcrv.1", "transportationgroundcrv.2"]
},
{ "id": "Name", "type": "merge-group", "entries": ["transportationgroundcrv.9"] }
]
},
{
"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": "transportationgroundcrv.1",
"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": "transportationgroundcrv.2",
"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": "transportationgroundcrv.0a",
"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": "transportationgroundcrv.0b",
"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": "transportationgroundcrv.3",
"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": "transportationgroundcrv.5",
"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": "transportationgroundcrv.7",
"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": "transportationgroundcrv.8",
"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": "transportationgroundcrv.6",
"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": "transportationgroundcrv.4",
"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": "transportationgroundcrv.9",
"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",
"source": "daraa"
},
{
"type": "symbol",
"source-layer": "FacilityPnt",
"layout": {"icon-image": "circle_b", "icon-size": 0.2},
"paint": {"icon-opacity": 1},
"id": "facilitypnt",
"source": "daraa"
}
]
}
Example style information file
{
"title" : "topographic",
"links" : [ {
"rel" : "self",
"type" : "application/json",
"title" : "This document",
"href" : "https://demo.ldproxy.net/daraa/styles/topographic/metadata?f=json"
}, {
"rel" : "alternate",
"type" : "text/html",
"title" : "This document as 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 in 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"
}
} ]
}