Services.Json

Konfiguration #

services.json #

Die den Portalen zur Verfügung stehenden Dienste (WMS und WFS bzw. deren Layer werden in einer JSON-Datei konfiguriert und gepflegt. Die Datei wird in der Datei config.js der einzelnen Portale unter dem Parameter layerConf über ihren Pfad referenziert. Hier werden alle Informationen der Layer hinterlegt, die das Portal für die Nutzung der Dienste benötigt. Die Konfiguration unterscheidet sich leicht zwischen WMS und WFS. Hier geht es zu einem Beispiel. Es können auch lokale GeoJSON-Dateien in das Portal geladen werden (Siehe Beispiel GeoJSON).

Layertyp unabhängige Konfiguration #

Folgende Konfiguration ist für jeden Layertyp anwendbar.

Name Verpflichtend Typ default Beschreibung Beispiel
externalInfo nein Array undefined Liste von Objekten, die weiterführende Links kategorisiert enthält. Hierbei entspricht jedes Objekt einer eigenen Kategorie. Jedes Objekt MUSS zwei Eigenschaften abbilden: title (String, Titel der Kategorie) und urls (String[], Liste an Links). [{title: "Kategorie A", urls: ["example.com"]}, {title: "Kategorie B}, urls: ["foo.bar"]]
requiresAuthentication nein Boolean false True = Geschützter Dienst (Basic Auth ) true

WMS-Layer #

Name Verpflichtend Typ default Beschreibung Beispiel
cache nein Boolean Ist dieser Layer Teil eines gecachten Dienstes? Wenn true wird bei Portalen, die in der config.json den „Baumtyp“ = „default“ benutzen, dieser Layer den Layern vorgezogen, die mit demselben Metadatensatz verknüpft sind, aber „cache“ = false haben. Bei anderen Baumtypen hat dieser Parameter keine Auswirkungen. false
datasets nein Object Verknüpfung zu den Metadaten. Hier werden die Metadatensätze der Datensätze angegeben, die in diesem Layer dargestellt werden. Sie werden nach Click auf den „i“-Button des Layers in den Layerinformationen über die CSW-Schnittstelle angesprochen und dargestellt. Dazu muss in der rest-services.json die URL des Metadatenkatalogs bzw. seiner CSW-Schnittstelle angegeben sein. Die Angaben unter kategorie_opendata, kategorie_inspire und kategorie_organisation werden verwandt, um die Layer in die entprechenden Kategorien einzuordnen, wenn in der config.json der Baumtyp default gesetzt ist.
featureCount ja String Anzahl der zurückzugebenden Features bei GFI-Abfragen. Entspricht dem GetFeatureInfo-Parameter “FEATURE_COUNT” "1"
format ja String Grafikformat der Kachel, die vom Portal über den GetMap aufgerufen wird. Muss einem der Werte aus den Capabilities unter Capability/Request/GetMap/Format entsprechen. "image/jpeg"
gfiAttributes ja String/Object GFI-Attribute die angezeigt werden sollen. "ignore"
gfiTheme ja String Darstellungsart der GFI-Informationen für diesen Layer. Wird hier nicht default gewählt, können eigens für diesen Layer erstellte Templates ausgewählt werden, die es erlauben die GFI-Informationen in anderer Struktur als die Standard-Tabellendarstellung anzuzeigen. "default"
gutter nein String “0” Wert in Pixel, mit dem bei gekachelten Anfragen die Kacheln überlagert werden. Dient zur Vermeidung von abgeschnittenen Symbolen an Kachelgrenzen. "0"
id ja String Frei wählbare Layer-ID "8"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
layers ja String Layername im Dienst. Dieser muss dem Wert aus den Dienste-Capabilities unter Layer/Layer/Name entsprechen. "1"
legendURL ja String Link zur Legende, um statische Legenden des Layers zu verknüpfen. ignore: Es wird keine Legende abgefragt, ““ (Leerstring): GetLegendGraphic des Dienstes wird aufgerufen. "ignore"
maxScale ja String Bis zu diesem Maßstab wird der Layer im Portal angezeigt "1000000"
minScale nein String Ab diesem Maßstab wird der Layer im Portal angezeigt "0"
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "Luftbilder DOP 10"
singleTile nein Boolean Soll die Grafik als eine große Kachel ausgeliefert werden? Wenn true wird immer der gesamte Kartenausschnitt angefragt, wenn false wird der Kartenausschnitt in kleineren Kacheln angefragt und zusammengesetzt. false
tilesize ja String Kachelgröße in Pixel. Diese wird verwandt wenn singleTile=false gesetzt ist. "512"
transparent ja Boolean Hintergrund der Kachel transparent oder nicht (false/true). Entspricht dem GetMap-Parameter TRANSPARENT true
typ ja String Diensttyp, in diesem Fall WMS (WMTS siehe unten und WFS siehe unten "WMS"
url ja String Dienste URL "https://isk.geobasis-bb.de/mapproxy/dop20c/service/wms"
useProxyUrlForGfi nein boolean undefined Flag um die GFI-Abfrage für einen Layer über einen reverse proxy laufen zu lassen. false
version ja String Dienste Version, die über GetMap angesprochen wird. "1.3.0"

Beispiel WMS:

#!json

    {
        "id": "290",
        "name": "Digitale Orthophotos 20cm Bodenauflösung Farbe Cache Brandenburg mit Berlin",
        "url": "https://isk.geobasis-bb.de/mapproxy/dop20c_sentinel/service/wms?",
        "typ": "WMS",
        "layers": "dop_brandenburg",
        "format": "image/png",
        "version": "1.1.1",
        "singleTile": false,
        "transparent": false,
        "transparency": 0,
        "tilesize": 512,
        "gutter": 0,
        "minScale": "0",
        "maxScale": "2500000",
        "gfiAttributes": "ignore",
        "gfiTheme": "default",
        "gfiComplex": "false",
        "layerAttribution": "nicht vorhanden",
        "legendURL": "ignore",
        "cache": false,
        "featureCount": 1,
        "datasets": [
            {
                "md_id": "253b7d3d-6b42-47dc-b127-682de078b7ae"
            }
        ],
        "isNeverVisibleInTree": false,
        "requiresAuthentication": false,
        "isBaseLayer": false,
        "visibility": false,
        "externalInfo": [{
            "urls": [
                "https://geobroker.geobasis-bb.de/gbss.php?MODE=GetProductInformation&PRODUCTID=253b7d3d-6b42-47dc-b127-682de078b7ae"
            ],
            "title": "<b>GEO</b>BROKER"
        }]
    }

WMTS-Layer #

Es gibt zwei Wege, einen WMTS-Layer in der Kartenviewer API zu definieren:

A) Angabe aller nachfolgenden WMTS-Parameter
B) Nutzung der OpenLayers-optionsFromCapabilities-Methode (siehe Beispiel 2)

Name Verpflichtend Typ default Beschreibung Beispiel
capabilitiesUrl nein String Capabilities URL des WMTS-Dienstes https://www.wmts.nrw.de/geobasis/wmts_nw_dtk/1.0.0/WMTSCapabilities.xml"
coordinateSystem ja String Das Koordinatenreferenzsystem des Layers. "EPSG:3857"
format ja String Das Graphikformat der Kacheln des Layers. Wird nur benötigt, wenn der Parameter requestEncoding=“KVP” ist. "image/png"
id ja String Frei wählbare Layer-ID "320"
layer ja String Name des Layers, welcher dem aus den WMTS Capabilities entsprechen muss. "geolandbasemap"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
legendURL ja String Link zur Legende, um statische Legenden des Layers zu verknüpfen. ignore: Es wird keine Legende abgefragt, ““ (Leerstring): GetLegendGraphic des Dienstes wird aufgerufen. "ignore"
maxScale ja String Bis zu diesem Maßstab wird der Layer im Portal angezeigt "2500000"
minScale nein String Ab diesem Maßstab wird der Layer im Portal angezeigt "0"
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "Geoland Basemap"
optionsFromCapabilities nein Boolean Option zur Nutzung der getOptionsFromCapabilities Methode, um den WMTS-Layer zu definieren. Siehe nachfolgende Beispiele true
origin ja Number[] Der Ursprung des Kachelrasters. Dieser kann entweder den WMTS Capabilities entnommen werden oder entspricht meist der oberen linken Ecke des extents. [-20037508.3428, 20037508.3428]
requestEncoding ja enum[“KVP”, “REST”] Codierung der Anfrage an den WMTS Dienst. "REST"
resLength ja String Länge des resolutions und des matrixIds Arrays. Wird benötigt, um die maximale Zoom-Stufe des Layers einstellen zu können. "20"
style nein String “normal” Name des Styles, welcher dem aus den WMTS Capabilities entsprechen muss. "normal"
tileMatrixSet ja String Set der Matrix, das für die Anfrage an den WMTS Dienst benötigt wird. Bei der optionsFromCapabilities-Variante, ist dieser Parameter nicht zwingend notwendig (es wird ein passendes TileMatrixSet gesucht). "google3857"
tileSize ja String Kachelgröße in Pixel. "256"
transparent ja Boolean Hintergrund der Kachel transparent oder nicht (false/true). Entspricht dem GetMap-Parameter TRANSPARENT false
typ ja String Diensttyp, in diesem Fall WMS (WMS siehe oben und WFS siehe unten "WMTS"
urls ja String[]/String URLs des WMTS Dienstes. Wenn nur eine einzelne URL als String angegeben wird, dann wird diese intern zu einem Array verarbeitet. ["https://maps1.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png", "https://maps2.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png", "https://maps3.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png", "https://maps4.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png", "https://maps.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"]
version ja String Dienste Version, die über GetMap angesprochen wird. "1.0.0"
wrapX nein Boolean false Gibt an, ob die Welt horizontal gewrapped werden soll. true

Beispiel 1 WMTS:

#!json

{
   "id": "320",
   "name": "Geoland Basemap",
   "urls": [
      "https://maps1.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
      "https://maps2.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
      "https://maps3.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
      "https://maps4.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png",
      "https://maps.wien.gv.at/basemap/geolandbasemap/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"
   ],
   "typ": "WMTS",
   "layer": "geolandbasemap",
   "version": "1.0.0",
   "format": "image/png",
   "style": "normal",
   "transparent": false,
   "tileSize": "256",
   "minScale": "0",
   "maxScale": "2500000",
   "tileMatrixSet": "google3857",
   "coordinateSystem": "EPSG:3857",
   "layerAttribution": "nicht vorhanden",
   "legendURL": "ignore",
   "cache": true,
   "wrapX": true,
   "origin": [
      -20037508.3428,
      20037508.3428
   ],
   "resLength": "20",
   "requestEncoding": "REST"
}

Beispiel 2 WMTS (optionsFromCapabilities Methode)

{
  "id": "2020",
  "name": "EOC Basemap",
  "capabilitiesUrl": "https://tiles.geoservice.dlr.de/service/wmts?SERVICE=WMTS&REQUEST=GetCapabilities",
  "typ": "WMTS",
  "layers": "eoc:basemap",
  "optionsFromCapabilities": true
}

WFS-Layer #

Name Verpflichtend Typ default Beschreibung Beispiel
datasets ja Object Hier werden die Metadatensätze der dargestellten Datensätze referenziert. Diese Werden in der Layerinfo (i-Knopf) im Portal zur Laufzeit aus dem Metadatenkatalog bzw. seiner CS-W – Schnittstelle abgerufen und dargestellt. Die Angaben unter „Kategorie_…“ werden im default-tree zur Auswahl der Kategorien bzw. zur Strukturierung des Layerbaums verwandt.
featureNS ja String featureNamespace. Ist gewöhnlich im Header der WFS-Capabilities referenziert und löst den Namespace auf, der unter FeatureType/Name angegeben wird. "http://www.deegree.org/app"
featureType ja String featureType-Name im Dienst. Dieser muss dem Wert aus den Dienste-Capabilities unter FeatureTypeList/FeatureType/Name entsprechen. Allerdings ohne Namespace. "bab_vkl"
gfiAttributes ja String/Object GFI-Attribute die angezeigt werden sollen. "ignore"
gfiFormat nein String/Object Optionale Steuerung des Inhaltes der GFI-Informationen für diesen Layer. Der Inhalt kann im Rahmen eines Projektes frei gewählt werden. Die Steuerung der Inhalte über diesen Parameter ist z.B. bei der Verwendung eines gfi-Themes für mehrere Layer von zentraler Bedeutung. {"exampleProjectSwitch" : {"domain": "statistical", "property": "school", "unit": "percent"}}
id ja String Frei wählbare Layer-ID "44"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
legendURL nein String Link zur Legende, um statische Legenden des Layers zu verknüpfen. ignore: Es wird keine Legende abgefragt, ““ (Leerstring): GetLegendGraphic des Dienstes wird aufgerufen. ""
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "Verkehrslage auf Autobahnen"
typ ja String Diensttyp, in diesem Fall WFS (WMS siehe oben, WMTS siehe oben) "WFS"
url ja String Dienste URL "https://geodienste.beispiel.de/HH_WFS_Verkehr_opendata"
version nein String Dienste Version, die über GetFeature angesprochen wird. "1.1.0"
altitudeMode nein enum[“clampToGround”,“absolute”,“relativeToGround”] “clampToGround” Höhenmodus für die Darstellung in 3D. "absolute"
altitude nein Number Höhe für die Darstellung in 3D in Metern. Wird eine altitude angegeben, so wird die vorhandene Z-Koordinate überschrieben. Falls keine Z-Koordinate vorhanden ist, wird die altitude als Z-Koordinate gesetzt. 527
altitudeOffset nein Number Höhenoffset für die Darstellung in 3D in Metern. Wird ein altitudeOffset angegeben, so wird die vorhandene Z-Koordinate um den angegebenen Wert erweitert. Falls keine Z-Koordinate vorhanden ist, wird der altitudeOffset als Z-Koordinate gesetzt. 10
useProxyUrlForGfi nein boolean undefined Flag um die GFI-Abfrage für einen Layer über einen reverse proxy laufen zu lassen. false
Beispiel WFS:
#!json

    {
        "id" : "2003",
        "name" : "WFS",
        "url" : "https://isk.geobasis-bb.de/ows/vg_wfs",
        "typ" : "WFS",
        "featureType" : "bb_grenze",
        "format" : "image/png",
        "version" : "1.1.0",
        "featureNS" : "http://www.deegree.org/app",
        "gfiAttributes" : "showAll",
        "gfiFormat": {"exampleProjectSwitch" : {"domain": "statistical", "property": "grenze", "unit": "percent"}},
        "layerAttribution" : "nicht vorhanden",
        "legendURL" : "",
        "datasets": [
            {
                "md_id": "ed6ab7a1-7a64-4ceb-8d37-2e156b7f4546"
            }
        ],
        "externalInfo": [
            {
                "title": "Diensteanbieter",
                "urls": [
                    "https://geobasis-bb.de/"
                ]
            }
        ]
    },


gfi_attributes #

Hier erlauben Key-Value-Paare die portalseitige Übersetzung manchmal diensteseitig kryptischer Attributnamen in lesbare. Weitere Optionen sind: ignore: keine GFI-Abfrage möglich, showAll: alle GFI-Attribute werden abgefragt und wie vom Dienst geliefert angezeigt. Bestimmte Standard-Attribute ohne Informationswert für den Benutzer werden immer aus der Anzeige im Portal ausgeschlossen, siehe(config.js)

Beispiel gfiAttributes als String:

#!json
{
   "gfiAttributes": "showAll"
}

Beispiel gfiAttributes als String:

#!json
{
   "gfiAttributes": "ignore"
}

Beispiel gfiAttributes als Objekt:

#!json
{
   "gfiAttributes": {
      "key1": "Key der im Portal gezeigt wird 1",
      "key2": "Key der im Portal gezeigt wird 2",
      "key3": "Key der im Portal gezeigt wird 3"
   }
}

Wird gfiAttributes als Objekt übergeben, kann der Value auch ein Objekt sein. Dann wird ein Key erst verwendet, wenn eine Bedingung erfüllt ist

Name Verpflichtend Typ default Beschreibung Beispiel
name true String Name, der bei exakt einem Match angezeigt werden soll. ‘“Test”’
condition true enum[“contains”, “startsWith”, “endsWith”] Bedingung nach welcher der key gegen alle Attribute des Features geprüft wird. ‘“startsWith”’
type false enum[“string”,“date”] “string” Wenn type = “date”, dann wird versucht ein Datum aus dem Attributwert zu erzeugen. ‘“date”’
format false String “DD.MM.YYYY HH:mm:ss” Datumsformat. ‘“DD.MM.YYY”’
suffix false String Suffix, das an den Attributwert angehängt wird. ‘“°C”’

Beispiel gfiAttributes als Objekt mit suffix:

#!json
{
   "gfiAttributes": {
      "key1": "Key der im Portal gezeigt wird 1",
      "key2": "Key der im Portal gezeigt wird 2",
      "key3": {
         "name": "Key der im Portal gezeigt wird 3",
         "condition": "contains",
         "suffix": "°C"
      }
   }
}

Beispiel gfiAttributes als Objekt mit type und format:

#!json
{
   "gfiAttributes": {
      "key1": "Key der im Portal gezeigt wird 1",
      "key2": "Key der im Portal gezeigt wird 2",
      "key3": {
         "name": "Key der im Portal gezeigt wird 3",
         "condition": "contains",
         "type": "date",
         "format": "DD.MM.YY"
      }
   }
}

GeoJSON-Layer #

Name Verpflichtend Typ default Beschreibung Beispiel
gfiAttributes ja String/Object GFI-Attribute die angezeigt werden sollen. "ignore"
id ja String Frei wählbare Layer-ID "11111"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
legendURL nein String Link zur Legende, um statische Legenden des Layers zu verknüpfen. ignore: Es wird keine Legende abgefragt, ““ (Leerstring): GetLegendGraphic des Dienstes wird aufgerufen. ""
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "lokale GeoJSON"
typ ja String Diensttyp, in diesem Fall GeoJSON "GeoJSON"
subTyp nein enum[“OpenSenseMap] SubTyp um spezielle Daten nachzuladen. "OpenSenseMap"
url ja String Pfad/URL zur GeoJSON. Der Pfad ist relativ zur index.html "/myJsons/test.json"
altitudeMode nein enum[“clampToGround”,“absolute”,“relativeToGround”] “clampToGround” Höhenmodus für die Darstellung in 3D. "absolute"
altitude nein Number Höhe für die Darstellung in 3D in Metern. Wird eine altitude angegeben, so wird die vorhandene Z-Koordinate überschrieben. Falls keine Z-Koordinate vorhanden ist, wird die altitude als Z-Koordinate gesetzt. 527
altitudeOffset nein Number Höhenoffset für die Darstellung in 3D in Metern. Wird ein altitudeOffset angegeben, so wird die vorhandene Z-Koordinate um den angegebenen Wert erweitert. Falls keine Z-Koordinate vorhanden ist, wird der altitudeOffset als Z-Koordinate gesetzt. 10
useProxyUrlForGfi nein boolean undefined Flag um die GFI-Abfrage für einen Layer über einen reverse proxy laufen zu lassen. false

Beispiel GeoJSON:

#!json

    {
      "id" : "11111",
      "name" : "lokale GeoJSON",
      "url" : "myJsons/test.json",
      "typ" : "GeoJSON",
      "gfiAttributes" : "showAll",
      "layerAttribution" : "nicht vorhanden",
      "legendURL" : "",
   }

Heatmap-Layer #

Name Verpflichtend Typ default Beschreibung Beispiel
id ja String Frei wählbare Layer-ID "11111"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "Mein Heatmap Layer"
typ ja String Diensttyp, in diesem Fall Heatmap "Heatmap"
attribute nein String "” Attributname. Nur Features, die dem “attribute” und “value” entsprechen, werden verwendet. "attr1"
value nein String "” Attributwert. Nur Features, die dem “attribute” und “value” entsprechen, werden verwendet. "val1"
radius nein Number 10 Radius der Heatmap features. 10
blur nein Number 15 Blur der Heatmap Features 15
gradient nein String[] ["#00f", “#0ff”, “#0f0”, “#ff0”, “#f00”] Farbgradient der Heatmap ["#f00", "#0f0", "#00f"]
dataLayerId ja String Id des Layers der die Features für die Heatmap liefert "4321"

Beispiel HeatmapLayer:

#!json

    {
		"id": "1234",
		"name": "Heatmap des Vektorlayers mit der layerid 4321",
		"typ": "Heatmap",
		"attribute": "state",
		"value": "charging",
		"radius": 20,
		"blur": 30,
		"gradient": [
			"#ffffb2",
			"#fd8d3c",
			"#fd8d3c",
			"#f03b20",
			"#bd0026"
		],
        "gfiAttributes": "ignore",
        "dataLayerId": "4321"
	}

3D Object Layer TileSet #

Name Verpflichtend Typ default Beschreibung Beispiel
datasets ja Object Hier werden die Metadatensätze der dargestellten Datensätze referenziert. Diese Werden in der Layerinfo (i-Knopf) im Portal zur Laufzeit aus dem Metadatenkatalog bzw. seiner CS-W – Schnittstelle abgerufen und dargestellt. Die Angaben unter „Kategorie_…“ werden im default-tree zur Auswahl der Kategorien bzw. zur Strukturierung des Layerbaums verwandt.
gfiAttributes ja String/Object GFI-Attribute die angezeigt werden sollen. "ignore"
id ja String Frei wählbare Layer-ID "44"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
legendURL nein String Link zur Legende, um statische Legenden des Layers zu verknüpfen. ignore: Es wird keine Legende abgefragt, ““ (Leerstring): GetLegendGraphic des Dienstes wird aufgerufen. ""
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "Verkehrslage auf Autobahnen"
hiddenFeatures nein Array Liste mit IDs, die in der Ebene versteckt werden sollen ["id_1", "id_2"]
typ ja String Diensttyp, in diesem Fall TileSet3D "TileSet3D"
url ja String Dienste URL "https://geodienste.beispiel.de/buildings_lod2"
cesium3DTilesetOptions nein Object Cesium 3D Tileset Options, werden direkt an das Cesium Tileset Objekt durchgereicht. maximumScreenSpaceError ist z.B. für die Sichtweite relevant.

Beispiel Tileset:

#!json

{
      "id" : "buildings",
      "name" : "Gebäude",
      "url" : "https://geodienste.beispiel.de/b3dm_beispiel_lod2",
      "typ" : "Tileset3D",
      "gfiAttributes" : "showAll",
      "layerAttribution" : "nicht vorhanden",
      "legendURL" : "ignore",
      "hiddenFeatures": ["id1", "id2"],
      "cesium3DTilesetOptions" : {
        maximumScreenSpaceError : 6
      },
      "datasets" : [
         {
            "md_id" : "2FC4BBED-350C-4380-B138-4222C28F56C6",
            "rs_id" : "HMDK/6f62c5f7-7ea3-4e31-99ba-97407b1af9ba",
            "md_name" : "LOD 2 Gebäude",
            "bbox" : "461468.97,5916367.23,587010.91,5980347.76",
            "kategorie_opendata" : [
               "LOD 2 Gebäude"
            ],
            "kategorie_inspire" : [
               "LOD 2 Gebäude"
            ],
            "kategorie_organisation" : "Behörde für Wirtschaft, Verkehr und Innovation"
         }
      ]
   }

Terrain3D Quantized Mesh Dataset #

Name Verpflichtend Typ default Beschreibung Beispiel
datasets ja Object Hier werden die Metadatensätze der dargestellten Datensätze referenziert. Diese Werden in der Layerinfo (i-Knopf) im Portal zur Laufzeit aus dem Metadatenkatalog bzw. seiner CS-W – Schnittstelle abgerufen und dargestellt. Die Angaben unter „Kategorie_…“ werden im default-tree zur Auswahl der Kategorien bzw. zur Strukturierung des Layerbaums verwandt.
id ja String Frei wählbare Layer-ID "44"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
legendURL nein String Link zur Legende, um statische Legenden des Layers zu verknüpfen. ignore: Es wird keine Legende abgefragt, ““ (Leerstring): GetLegendGraphic des Dienstes wird aufgerufen. ""
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "Verkehrslage auf Autobahnen"
typ ja String Diensttyp, in diesem Fall Terrain3D "Terrain3D"
url ja String Dienste URL "https://geodienste.beispiel.de/terrain"
cesiumTerrainProviderOptions nein Object Cesium TerrainProvider Options, werden direkt an den Cesium TerrainProvider durchgereicht. requestVertexNormals ist z.B. für das Shading auf der Oberfläche relevant.

Beispiel Terrain:

#!json
   {
      "id" : "buildings",
      "name" : "Terrain",
      "url" : "https://geodienste.beispiel.de/terrain",
      "typ" : "Terrain3D",
      "gfiAttributes" : "showAll",
      "layerAttribution" : "nicht vorhanden",
      "legendURL" : "ignore",
      "cesiumTerrainProviderOptions": {
        "requestVertexNormals" : true
      },
      "datasets" : [
         {
            "md_id" : "2FC4BBED-350C-4380-B138-4222C28F56C6",
            "rs_id" : "HMDK/6f62c5f7-7ea3-4e31-99ba-97407b1af9ba",
            "md_name" : "Terrain",
            "bbox" : "461468.97,5916367.23,587010.91,5980347.76",
            "kategorie_opendata" : [
               "Terrain"
            ],
            "kategorie_inspire" : [
               "Terrain"
            ],
            "kategorie_organisation" : "Behörde für Wirtschaft, Verkehr und Innovation"
         }
      ]
   }

Oblique Layer #

Name Verpflichtend Typ default Beschreibung Beispiel
datasets ja Object Hier werden die Metadatensätze der dargestellten Datensätze referenziert. Diese Werden in der Layerinfo (i-Knopf) im Portal zur Laufzeit aus dem Metadatenkatalog bzw. seiner CS-W – Schnittstelle abgerufen und dargestellt. Die Angaben unter „Kategorie_…“ werden im default-tree zur Auswahl der Kategorien bzw. zur Strukturierung des Layerbaums verwandt.
id ja String Frei wählbare Layer-ID "44"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
legendURL nein String Link zur Legende, um statische Legenden des Layers zu verknüpfen. ignore: Es wird keine Legende abgefragt, ““ (Leerstring): GetLegendGraphic des Dienstes wird aufgerufen. ""
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "Verkehrslage auf Autobahnen"
typ ja String Diensttyp, in diesem Fall Oblique "Oblique"
hideLevels nein Number Anzahl der Level der Bildpyramide, die nicht angezeigt werden sollen. 0
minZoom nein Number Minimale Zoomstufe 0 zeigt das komplette Schrägluftbild in der Mitte des Bildschirms. 0
terrainUrl nein String URL zu Cesium Quantized Mesh Terrain dataset "https://geodienste.beispiel.de/terrain"
resolution nein Number Auflösung der Schrägluftbilder in cm z.B. 10 . 10
projection ja String Projektion der Schrägluftbild ebene. EPSG:25832
url ja String Dienste URL "https://geodienste.beispiel.de/oblique"

Beispiel Oblique Ebene:

#!json
   {
      "id" : "oblique",
      "name" : "Oblique",
      "url" : "https://geodienste.beispiel.de/oblique",
      "typ" : "Oblique",
      "gfiAttributes" : "showAll",
      "layerAttribution" : "nicht vorhanden",
      "legendURL" : "ignore",
      "datasets" : [
         {
            "md_id" : "2FC4BBED-350C-4380-B138-4222C28F56C6",
            "rs_id" : "HMDK/6f62c5f7-7ea3-4e31-99ba-97407b1af9ba",
            "md_name" : "Oblique",
            "bbox" : "461468.97,5916367.23,587010.91,5980347.76",
            "kategorie_opendata" : [
               "Oblique"
            ],
            "kategorie_inspire" : [
               "Oblique"
            ],
            "kategorie_organisation" : "Behörde für Wirtschaft, Verkehr und Innovation"
         }
      ]
   }

Entities Layer 3D #

Entities Layer um 3D Modelle im Gltf oder Glb Format darzustellen.

Name Verpflichtend Typ default Beschreibung Beispiel
datasets ja Object Hier werden die Metadatensätze der dargestellten Datensätze referenziert. Diese Werden in der Layerinfo (i-Knopf) im Portal zur Laufzeit aus dem Metadatenkatalog bzw. seiner CS-W – Schnittstelle abgerufen und dargestellt. Die Angaben unter „Kategorie_…“ werden im default-tree zur Auswahl der Kategorien bzw. zur Strukturierung des Layerbaums verwandt.
id ja String Frei wählbare Layer-ID "44"
layerAttribution nein String “nicht vorhanden” Zusätzliche Information zu diesem Layer, die im Portal angezeigt wird, sofern etwas anderes als “nicht vorhanden” angegeben und in dem jeweiligen Portal das Control LayerAttribution aktiviert ist. "nicht vorhanden"
legendURL nein String Link zur Legende, um statische Legenden des Layers zu verknüpfen. ignore: Es wird keine Legende abgefragt, ““ (Leerstring): GetLegendGraphic des Dienstes wird aufgerufen. ""
name ja String Anzeigename des Layers im Portal. Dieser wird im Portal im Layerbaum auftauchen und ist unabhängig vom Dienst frei wählbar. "Verkehrslage auf Autobahnen"
typ ja String Diensttyp, in diesem Fall Entities3D "Entities3D"
entities ja Array Modelle, die angezeigt werden sollen []

Entity Optionen

Name Verpflichtend Typ default Beschreibung Beispiel
url ja String "" Url zu dem Modell "https://beispiel.virtualcitymap.de/gltf/4AQfNWNDHHFQzfBm.glb"
attributes nein Object {} Attribute für das Modell {"name": "test"}
latitude ja Number Breitengrad des Modell-Origins in Grad 53.541831
longitude ja Number Längengrad des Modell-Origins in Grad 9.917963
height nein Number 0 Höhe des Modell-Origins 10
heading nein Number 0 Rotation des Modells, in Grad 0
pitch nein Number 0 Neigung des Modells in Grad 0
roll nein Number 0 Roll des Modells in Grad 0
scale nein Number 1 Skalierung des Modells 1
allowPicking nein Boolean true Ob das Modell angeklickt werden darf (GFI) true
show nein Boolean true Ob das Modell angezeigt werden soll (sollte true sein) true

Beispiel Entities3D Ebene:

#!json
   {
     "id": "gltfLayer",
     "name": "GltfLayer",
     "typ": "Entities3D",
     "layerAttribution": "nicht vorhanden",
     "legendURL": "ignore",
     "entities": [
       {
         "url": "https://beispiel.virtualcitymap.de/gltf/4AQfNWNDHHFQzfBm.glb",
         "attributes": {
           "name": "Fernsehturm.kmz"
         },
         "latitude": 53.541831,
         "longitude": 9.917963,
         "height": 10,
         "heading": -1.2502079000000208,
         "pitch": 0,
         "roll": 0,
         "scale": 5,
         "allowPicking": true,
         "show": true
       }
     ],
     "datasets": [
       {
         "md_id": "A39B4E86-15E2-4BF7-BA82-66F9913D5640",
         "rs_id": "https://registry.gdi-de.org/id/de.hh/6D10BE89-636D-4359-8B27-4AB4DCA02F3A",
         "md_name": "Digitales Höhenmodell Hamburg DGM 1",
         "bbox": "461468.97,5916367.23,587010.91,5980347.76",
         "kategorie_opendata": [
           "Geographie, Geologie und Geobasisdaten"
         ],
         "kategorie_inspire": [
           "Höhe"
         ],
         "kategorie_organisation": "Landesbetrieb Geoinformation und Vermessung"
       }
     ]
   }