Zum Hauptinhalt springen

AppConf

Eigenschaften

AttributZweckDatentypBeispiel
titleTitel des Portals, wird im Browser in der Tableiste angezeigtstring"title": "MapEdit Portal"
responsibilitystring
responsibility.namestring
responsibility.streetstring
responsibility.postcodestring
responsibility.citystring
responsibility.descrstring
baseColorrgb / rgba / color name (string)"baseColor": "#F2B90F"
baseColorAccentrgb / rgba / color name (string)"baseColorAccent": "#F2B90F"
searchColorOffrgb / rgba / color name (string)"searchColorOff": "#F2B90F"
searchColorOnrgb / rgba / color name (string)"searchColorOn": "#64FAE2"
iconColorrgb / rgba / color name (string)"iconColor": "black"
backgroundColorrgb / rgba / color name (string)"backgroundColor": "white"
mapZoomnumber"mapZoom": 12
mapCentercoordinate (number[2])"mapCenter": [9.179053651748948,48.77780838625128]
maxZoomnumber"maxZoom": 16
minZoomnumber"minZoom": 11
boundariesordinate (number)"boundaries": { }
boundaries.northordinate (number)"north": 49.01647207539458
boundaries.eastordinate (number)"east": 9.470039341540087
boundaries.southordinate (number)"south": 48.53963064238704
boundaries.westordinate (number)"west": 8.805646346739763
logopath (string)"logo": "mum.png"
showSplashboolean"showSplash": false
splashTimenumber"splashTime": 3000
demoModeboolean
demoTextsiehe nächste Zeilen
demoText[n].titlestring
demoText[n].contentstring
showLanguageSelectionboolean
showNorthboolean
floorSelectorboolean
show3dOptionboolean
showPrintOptionboolean
showLegendboolean
printOptionssiehe nächste ZeilenPrintOptions
printOptions.paperSizesAuswahl ausstring[]
printOptions.scalesAuswahl 1,2,3,4number[]
lunrServerUrlrel. URL (string)
dataDirectoryPathrel. URL (string)
informationsiehe nächste ZeilenAppInformation
information.mapDatakann auf [] stehen bleibenstring[]
information.technologieskann auf [] stehen bleibenstring[]
bookmarkSelectorboolean
bookmarkswird weiter unten erläutertBookmarks[]
mapLayerswird weiter unten erläutertMapLayer[]
overlayssiehe nächste ZeilenListe aus Overlay-Einträgen | Overlays[]
overlays[n].idHier wird die Layer-ID eingetragenstring
overlays[n].nameHier wird der Name des Layers zur Darstellung in der Ebenen-Steuerung eingetragenstring
categoriessiehe nächste ZeilenListe aus Category-Einträgen | Category[]
categories[n].idstring
categories[n].mdiIconstring
categories[n].searchableboolean
categories[n].contact?Contact
categories[n].contact?.namestring
categories[n].contact?.departmentstring
categories[n].contact?.phonestring
categories[n].contact?.emailstring
categories[n].toggleLayer?layerId (string)

Bookmarks

MapLayer

In das Geoportal können Layer verschiedener Typen hinzugefügt werden. Der grundsätzliche Aufbau der Konfiguration ist hierbei bei allen Typen gleich, jedoch weicht besonders die Konfiguration der GeoJSON-Layer ab, da hier eine eigene Stilisierung notiert werden kann.

AttributBeschreibungDatentypBeispiel
typeAuswahl des LayertypsAuswahl aus: "GeoJSON" | "WMS" | "XYZ""type": "GeoJSON"
lidEindeutige ID für den Layer, frei wählbar.string"lid": "ebike"
nameEindeutiger Name für den Layer, frei wählbar.string"name": "ebike"
sourceDefiniton der Datenquelle für den Layer, unterscheidet sich von Typ zu Typobject
layoutTechnisch notwendig, sollte nicht abgeändert werdenobject"layout": { "visibility": "none" }
layerTypeHandelt es sich um eine Hintergrundkarte oder einen zuschaltbaren Inhalt?Auswahl aus: "base" | "overlay""layerType": "base"
displayInLayerList[nur bei layerType="base" zutreffend] Soll der Layer in der Layerauswahl angezeigt werden?boolean"displayInLayerList": true
displayInVectorLayerList[nur bei layerType="overlay" zutreffend] Soll der Layer in der Layerauswahl angezeigt werden?boolean"displayInVectorLayerList": true
isDefaultBaseLayer[nur bei layerType="base" zutreffend] Sollte bei allen auf false gesetzt werden, außer bei dem Layer, der die Standardauswahl sein sollboolean"isDefaultBaseLayer": false
previewImage[nur bei layerType="base" zutreffend] Pfad zum VorschaubildstringpreviewImage: "rest/config/previewImages?image=sentinel.png"
attributionTextAttribution / Copyright des Kartenmaterials in Textformstring"attributionText": "Kartendaten: © OpenStreetMap-Mitwirkende"
attributionHTMLAttribution / Copyright des Kartenmaterials in HTML, mit Linksstring"attributionHTML": "Kartendaten: © \<a href='https://openstreetmap.orgcopyright'>OpenStreetMap\</a>"

GeoJSON

Definiert unter MapLayer

Zum Einbinden eines GeoJSON-Vektor-Layers muss vorab eine Konfiguration für diesen Layer im jeweiligen Mandanten unter '/cat' abgelegt werden. Anschließend können die Daten durch das Geoportal-Backend ausgegeben werden.

Wird ein GeoJSON-Layer genutzt, so können die Daten frei stilisiert werden.

AttributBeschreibungDatentypBeispiel
typeBei einem GeoJSON-Layer muss hier "GeoJSON" eingetragen werden.
Mehr unter MapLayer
"GeoJSON""type": "GeoJSON"
lidDefiniert unter MapLayer
nameDefiniert unter MapLayer
layoutDefiniert unter MapLayer
layerTypeDefiniert unter MapLayer
displayInLayerListDefiniert unter MapLayer
displayInVectorLayerListDefiniert unter MapLayer
isDefaultBaseLayerDefiniert unter MapLayer
previewImageDefiniert unter MapLayer
attributionTextDefiniert unter MapLayer
attributionHTMLDefiniert unter MapLayer
sourceQuellenangabe des Layersobject"source": { }
source.datarelativer Pfad zur Backendausgabe des Layersstring"data": "rest/data/geojson/ebike"
source.cluster?
[nur bei Punktlayern]
Soll geclustert werden?
Mehr unter Cluster
boolean"cluster": true
source.clusterMaxZoom?
[nur bei Punktlayern]
Bis zu welcher maximalen Zoomstufe soll geclustert werden?number"clusterMaxZoom": 14
source.clusterRadius?
[nur bei Punktlayern]
Wie weit [in px] sollen Punkte maximale auseinander liegen, sodass sie noch zum selben Cluster gehören?number"clusterRadius": 50
styleDefiniert unter StilisierungLayerStyle"style": { }

Stilisierung

GeoJSON

Die Stilisierung eines GeoJSON-Layers ist aufgeteilt in die verschiedenen Layer-Typen: "circle", "line", "fill" und "symbol".

  • Circle: Kreis aus Punktgeometrien
  • Line: Linien aus LineString-Geometrien und Umrandungen von Polygonen
  • Fill: Füllung eines Polygons
  • Symbol: Icons und Texte
AttributBeschreibungDatentypBeispiel
circleobject"circle": { }
circle.circle-radiusnumber/MapboxExpression"circle-radius": 8
circle.circle-colornumber/MapboxExpression"circle-color": "rgba(135,255,66,.75)"
circle.circle-stroke-widthnumber/MapboxExpression"circle-stroke-width": 1
circle.circle-stroke-colornumber/MapboxExpression"circle-stroke-color": "rgba(135,255,66,1)"
circle.circle-opacitynumber/MapboxExpression"circle-opacity": 0.5
line"line": { }
line.line-colornumber/MapboxExpression"line-color": "rgba(0,200,250, 1)"
line.line-widthnumber/MapboxExpression"line-width": 2
line.line-opacitynumber/MapboxExpression"line-opacity": 0.5
fill"fill": { }
fill.fill-colornumber/MapboxExpression"fill-color": "rgba(0,0,0,0)"
fill.fill-opacitynumber/MapboxExpression"fill-opacity": 0.5
fill.fill-opacitynumber/MapboxExpression"fill-opacity": 0.5
symbol.text-color"text-color": "rgba(0, 0, 0, 1)"

MapboxExpressions

Sofern bei einem Paramter laut obiger Tabelle möglich ist auch eine MapboxExpression einzufügen, kann das Feld durch Attribute des dargestellten Objekts beeinflusst werden.

Anmerkung

Interpolate-Expression: Hierbei Ändert sich eine Eigenschaft entlang der aktuellen Zoomstufe. Der Wert wird hierbei in Paaren definiert, bei denen abwechselnd Zoomstufe und Wert notiert werden. Im nachfolgenden Beispiel beträgt die Opacity von den Zoomstufen 0 bis 7 1 und ab Zoomstufe 18 0.75. Zwischen Zoomstufe 7 und 18 wird der Wert linear interpoliert.

"fill-opacity": [
"interpolate",
["linear"],
["zoom"],
7,
1,
18,
0.75
]

Case-Expression: Bei einer Case-Expression kann auf verschiedene Werte, die eine Eigenschaft haben kann, eingegangen werden. Hierbei werden in polnischer Notation Bedingungen aufgestellt, auf die der Wert folgt. Am Ende muss sich ein Default-Wert befinden. Im nachfolgenden Beispiel würden beispielsweise alle Eichen blau, alle Fichten green und alle restlichen Bäume rot dargestellt werden. Alle Bäume, die niedriger sind als 10 werden als kleine Punkte dargestellt, alle restlichen werden größer dargestellt.

"circle-color": [
"case",
["==", ["get", "baumart"], "Eiche"],
"blue",
["==", ["get", "baumart"], "Fichte"],
"green",
"red"
],
"circle-radius": [
"case",
["<", ["get", "height"], 10],
8,
16
],

Cluster

Unter einem Cluster versteht man das Zusammenfügen von Punktgeometrien zu einem größeren Punkt, der dann die Anzahl der zugehörigen Punkte angibt. Zoomt man näher in das Gebiet der Clusters, so werden die einzelnen Punkte einzeln angezeigt, sofern diese sich dann weit genug auseinander befinden.

Cluster können nur auf Punktlayer angewandt werden.

Vollständiges Beispiel:

{
"type": "GeoJSON",
"lid": "ebike",
"name": "ebike",
"source": {
"data": "rest/data/geojson/ebike",
"cluster": true,
"clusterMaxZoom": 14,
"clusterRadius": 50
},
"layout": {
"visibility": "none"
},
"style": {
"circle": {
"circle-radius": 8,
"circle-color": "rgba(135,255,66,.75)",
"circle-stroke-width": 1,
"circle-stroke-color": "rgba(135,255,66,1)"
}
},
"clusterOptions": {
"style": {
"circle": {
"circle-color": [
"step",
["get", "point_count"],
"rgba(195,255,161,1)",
5,
"rgba(163,255,110,1)",
10,
"rgba(130,245,64,1)"
],
"circle-radius": [
"step",
["get", "point_count"],
20,
2,
30,
5,
40
]
},
"symbol": {
"text-color": "rgba(0, 0, 0, 1)"
}
},
"layout": {
"visibility": "none"
},
"symbolLayout": {
"visibility": "none",
"text-field": "{point_count_abbreviated}",
"symbol-placement": "point",
"text-font": ["Roboto Light"],
"text-allow-overlap": true
}
},
"layerType": "overlay",
"displayInVectorLayerList": true,
"selectable": true,
"attributionText": "Kartendaten: © OpenStreetMap-Mitwirkende, SRTM | Kartendarstellung: © OpenTopoMap (CC-BY-SA)",
"attributionHTML": "Kartendaten: © <a href='https://openstreetmap.org/copyright'>OpenStreetMap</a>-Mitwirkende, SRTM",
"addToLegend": true
}

WMS

{
"type": "WMS",
"lid": "sentinel",
"name": "Sentinel",
"source": {
"tiles": ["https://sgx.geodatenzentrum.de/wms_sentinel2_de?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&LAYERS=sentinel2-de%3Argb&WIDTH=256&HEIGHT=256&CRS=EPSG%3A3857&STYLES=&BBOX={bbox-epsg-3857}"],
"tilesize": 256
},
"layout": {
"visibility": "none"
},
"displayInLayerList": true,
"layerType": "base",
"isDefaultBaseLayer": false,
"previewImage": "rest/config/previewImages?image=sentinel.png",
"attributionText": "Quellenvermerk: &copy; Bundesamt für Kartographie und Geodäsie 2020, Datenquellen: Enthält geänderte Copernicus Sentinel Daten ab 2018",
"attributionHTML": "Quellenvermerk: &copy; Bundesamt für Kartographie und Geodäsie 2020, Datenquellen: Enthält geänderte Copernicus Sentinel Daten ab 2018"
}

XYZ

{
"type": "XYZ",
"lid": "osm-topo",
"name": "OSM Topo",
"source": {
"tiles": ["https://gisdemo2.mum.de/TileServer/TileServlet?gettile&map=OpenTopoMap&zoomlevel={z}&x={x}&y={y}"],
"tilesize": 256
},
"layout": {
"visibility": "none"
},
"layerType": "base",
"isDefaultBaseLayer": false,
"previewImage": "rest/config/previewImages?image=osmTopo.png",
"attributionText": "Kartendaten: © OpenStreetMap-Mitwirkende, SRTM | Kartendarstellung: © OpenTopoMap (CC-BY-SA)",
"attributionHTML": "Kartendaten: © <a href='https://openstreetmap.org/copyright'>OpenStreetMap</a>-Mitwirkende, SRTM | Kartendarstellung: © <a href='http://opentopomap.org'>OpenTopoMap</a> (<a href='https://creativecommons.org/licenses/by-sa/3.0/'>CC-BY-SA</a>)"
}

TileServer

    {
"type": "XYZ",
"lid": "osm",
"name": "OSM",
"source": {
"tiles": ["https://gisdemo2.mum.de/TileServer/TileServlet?gettile&map=OSM&zoomlevel={z}&x={x}&y={y}"],
"tilesize": 256
},
"layout": {
"visibility": "none"
},
"displayInLayerList": true,
"layerType": "base",
"isDefaultBaseLayer": true,
"previewImage": "rest/config/previewImages?image=osm.png",
"attributionText": "Map Data © OpenStreetMap contributors.",
"attributionHTML": "Map Data © <a href='https://www.openstreetmap.org/copyright'>OpenStreetMap contributors</a>."
}