Skip to content

config.json 3.0🔗

The config.json file contains all configuration of the portal interface. It controls which elements are placed where on the menu bar, how the map is to be centered initially, and which layers are to be loaded. See this file for an example. The configuration is separated into two sections, portalConfig and layerConfig

Example

{
   "portalConfig": {},
   "layerConfig": {}
}

portalConfig🔗

The section portalConfig controls the following properties:

  1. Menu entries in main menu and availability as well as order of modules (mainMenu)
  2. Configuration of the map and elements placed on it (map)
  3. Footer configuration (portalFooter)
  4. Menu entries in secondary menu and availability as well as order of modules (secondaryMenu)
  5. Type of topic selection (tree)

The configuration options listed in the following table exist:

Name Required Type Default Description
mainMenu no menu Menu entries in main menu and their order are configured in this entry. The order of modules corresponds to the order in the object specifying them; see Modules.
map no map Configuration of the map and elements placed on it.
portalFooter no portalFooter Possibility to configure the content of the portal footer.
secondaryMenu no menu Menu entries in secondary menu and their order are configured in this entry. The order of modules corresponds to the order in the object specifying them; see Modules.
tree no tree Configuration of the topic selection tree.

Example

{
    "portalConfig": {
        "mainMenu": {},
        "map": {},
        "portalFooter": {},
        "secondaryMenu": {},
        "tree": {}
    }
}

portalConfig.map🔗

Configuration of the map and elements placed on it.

Name Required Type Default Description
baselayerSwitcher no baselayerSwitcher The baselayerSwitcher allows you to easily change or select a background map.
controls no controls Allows setting which interactions are active in the map.
featureViaURL no featureViaURL Optional configuration for the URL parameter featureViaURL. See urlParameter for details.
getFeatureInfo no getFeatureInfo Via getFeatureInfo (GFI) information to arbitrary layers can be requested. For WMS, the data is fetched with a GetFeatureInfo request. Vector data (WFS, Sensor, GeoJSON, etc.) is already present in the client and will be shown from the already fetched information.
layerPills no layerPills Configuration of the LayerPills.
map3dParameter no map3dParameter Cesium params.
mapMarker no mapMarker Overrides the map marker module's default values. Useful for 3D markers since OpenLayers's overlays can not be displayed in 3D mode. For this, the map marker has to be defined as vector layer.
mapView no mapView Defines the initial map view and a background shown when no layer is selected.
mouseHover no mouseHover Activates the MouseHover feature for vector layers, both WFS and GeoJSON. For per-layer configuration, see the Vector.
startingMapMode no String "2D" Indicates the mode in which the map starts. Possible are 2D and 3D
zoomTo no zoomTo[] Configuration for the URL query parameters zoomToFeatureId and zoomToGeometry.

Example

{
    "map": {
        "baselayerSwitcher": {},
        "controls": {},
        "getFeatureInfo": {},
        "layerPills": {},
        "map3dParameter": {},
        "mapView": {},
        "mouseHover": {},
        "startingMapMode": "3D"
    }
}

portalConfig.map.baselayerSwitcher🔗

The baselayerSwitcher allows you to easily switch or select a baselayer.

Name Required Type Default Description
active no Boolean false Defines if the baselayerSwitcher is activated.
activatedExpandable no Boolean false Specifies whether the baselayerSwitcher is expanded and all available baselayers are displayed or only the active one which is on the highest level.
singleBaseLayer no Boolean false Switches the previous selected Layer to invisible
visibleBaselayerIds no String[] Defines a subset of base layers that is available in the layer switcher.

Example

"baselayerSwitcher": {
    "active": true,
    "activatedExpandable": false,
    "visibleBaselayerIds": [
        "453",
        "34127",
        "VectorTile"
    ]
}

portalConfig.map.controls🔗

Allows setting which interactions are active in the map.

Controls can be configured to be expandable so they will not initially show up in the sidebar but if you click the button with the three dots. You need to add the object "expandable" to the controls configuration.

Name Required Type Default Description
backForward no Boolean/backForward false Shows buttons to jump to previous and next map views.
button3d no Boolean/button3d false Defines whether a 3D mode switch button is shown.
expandable no Boolean With expandable, controls are hidden behind a button with three dots and can be expanded when needed.
freeze no Boolean/freeze false Whether a "lock view" button is shown.
fullScreen no Boolean/fullScreen false Allows the user to view the portal in full screen mode, that is, without the browser's tabs and address bar, by clicking a button. A second click on the element returns the view back to normal.
orientation no orientation The orientation control uses the browser's geolocation feature to determine the user's coordinates.
rotation no rotation false Control that shows the current rotation of the map. With a click the map rotation can be set to north again. Two additional control buttons can be configured to rotate the card clockwise and counterclockwise. See also mapInteractions in config.js.md.
startModule no startModule false Displays buttons for the configured tools. These can be used to open and close the respective tools.
tiltView no Boolean/tiltView false Displays two buttons that can be used to tilt the camera up or down in the 3D scene.
totalView no Boolean/totalView false Offers a button to return to the initial view.
zoom no Boolean/zoom false Defines whether zoom buttons should be displayed.

Example

"controls": {
      "backForward": true,
      "fullScreen": true,
      "expandable": {
        "button3d": true
      }
    }

portalConfig.map.controls.backForward🔗

The attribute backForward may be of type boolean or object. If of type boolean, it shows a button using the default configuration that allows the user to switch back and forth between view states. When of type object, the following attributes may be set:

Name Required Type Default Description
iconForward no String "skip-end-fill" Allows changing the icon on the forward button.
iconBack no String "skip-start-fill" Allows changing the icon on the backwards button.
supportedDevices no String ["Desktop"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.

Example using type object backForward

"backForward" : {
    "iconForward": "bi-skip-forward-fill",
    "iconBack": "bi-skip-backward-fill"
}

Example using type boolean backForward

"backForward": true

portalConfig.map.controls.button3d🔗

The button3d attribute can be of type Boolean or Object. If it is of type Boolean, it indicates the button for switching to 3D mode. If it is of type Object, the following attributes apply

Name Required Type Default Description
icon2d no String "https://geodienste.hamburg.de/lgv-config/img/badge-2d.svg" A different icon can be used for the button3d control via the icon parameter if the map is in 3D mode.
icon3d no String "badge-3d" A different icon can be used for the button3d control via the icon parameter if the map is in 2D mode.
supportedDevices no String ["Desktop", "Mobile"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.

portalConfig.map.controls.freeze🔗

Screen is locked so that no more actions can be performed in the map. Whether a "lock view" button is shown.

The freeze attribute can be of type Boolean or Object. If it is of type Boolean, it shows the buttons that are set in the default settings. If it is of type Object, the following attributes apply:

Name Required Type Default Description
icon no String "bi-lock" Using the icon parameter, a different icon can be used to switch back to the home screen.
supportedDevices no String ["Desktop"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.

portalConfig.map.controls.fullScreen🔗

Allows the user to view the portal in full screen mode by clicking a button without the browser's tabs and address bar, by clicking a button. A second click on the element returns the view back to default.

Name Required Type Default Description
iconArrow no String "arrows-fullscreen" Using the iconArrow parameter, another icon can be used for the button to switch on fullscreen mode.
iconExit no String "fullscreen-exit" Using the iconExit parameter, another icon can be used for the button to exit fullscreen mode.
newTabFromFrame no Boolean true If set to false gesetzt, using the control in an iFrame switch to full screen mode and don't open a new tab.
supportedDevices no String ["Desktop"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.

Example fullScreen as Object

"fullScreen" : {
    "iconArrow": "arrows-fullscreen",
    "iconExit": "fullscreen-exit",
    "newTabFromFrame": true
},

Example fullScreen as Boolean

"fullScreen": true

portalConfig.map.controls.orientation🔗

Orientation uses the browser's geolocation to determine the user's location. A list of features in the vicinity of the location is displayed.

Name Required Type Default Description
customPosition no String "common:modules.controls.orientation.poiChoiceCustomPosition" This can be used to control which text is displayed for customPosition in the poiChoice. The path specified here must correspond to the path for the parameter in the translation file.
iconGeolocate no String "bi-geo-alt" Icon that is displayed in the Controls menu for the control location. For selection see Bootstrap Icons
iconGeolocatePOI no String "bi-record-circle" Icon that is displayed in the Controls menu for the "Close to me" control. For selection see Bootstrap Icons
iconGeolocationMarker no String "bi-circle-fill" Icon that is displayed in the map to mark the current position. For selection see Bootstrap Icons
iFrameGeolocationEnabled no Boolean false If 'iFrameGeolocationEnabled' is true, orientation will try to fetch geolocation within an iFrame. This only works if the iFrame-Tag of the containing page has the attribute allow="geolocation".
onlyFilteredFeatures no boolean false If 'onlyFilteredFeatures' is true, only features filtered via the filter are taken into account in the poi results display.
poiDistances no Boolean/Integer[] true Defines whether the feature "Close to me", which shows a list of nearby points of interest, is provided. If an array is configured, multiple such lists with the given distance in meters are offered. When simply setting poiDistances: true, the used distances are [500,1000,2000].
supportedDevices no String ["Desktop", "Mobile"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.
zoomMode no enum["once", "always"] "once" The user's location is determined and a marker turned on or off. This requires providing the portal via https. Modes: once zooms to the user's location once, always zooms to the user position on each activation.

Example using type boolean for poiDistances

"orientation": {
    "iconGeolocate": "bi-geo-alt",
    "iconGeolocatePOI": "bi-record-circle",
    "iconGeolocationMarker": "bi-circle-fill",
    "zoomMode": "once",
    "poiDistances": true
}

Example using type number[] for poiDistances

"orientation": {
    "zoomMode": "once",
    "poiDistances": [500, 1000, 2000, 5000]
}

portalConfig.map.controls.rotation🔗

Controls the display of 3 control buttons: "Reset rotation", "Rotate clockwise" and "Rotate counterclockwise" as well as the display of a compass rose for navigation in 2D and/or 3D. The compass rose is not displayed on mobile devices. The rotation attribute can be of type Boolean or Object. If it is of the Boolean type and set to true, it only displays the "Reset rotation" button if the map rotation is not equal to north/0. The other two buttons are always displayed. The compass rose is then only displayed in 3D. If it is of type Object, the following attributes apply:

Name Required Type Default Description
compass2d no Boolean false Controls the display of the compass rose in 2D.
compass3d no Boolean true Controls the display of the compass rose in 3D.
moveDistance no Number 1000 Distance in meters, which is used when clicking on the movement arrows of the compass rose.
resetRotationIcon no String "bi-cursor" Icon for the "Reset rotation" button. For selection see Bootstrap Icons
rotateCounterClockwiseIcon no String "bi-arrow-counterclockwise" Icon for the "Rotate counterclockwise" button. For selection see Bootstrap Icons
rotateClockwiseIcon no String "bi-arrow-clockwise" Icon for the "Rotate clockwise" button. For selection see Bootstrap Icons
rotationIcons no Boolean true The "Rotate clockwise" and "Rotate anticlockwise" buttons are displayed.
rotationAngle no Number 22.5 Angle by which the map is rotated when clicking on one of the rotate buttons.
showResetRotation no Boolean true The "Reset rotation" button is displayed.
showResetRotationAlways no Boolean false If the attribute is set to true, the control is shown permanently. Via default it appears only if the map rotation is not equal north/0.
supportedDevices no String ["Desktop", "Mobile"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.

Example using type object rotation

"rotation": {
    "compass2d": true,
    "moveDistance": 2500,
    "showResetRotation": true,
    "showResetRotationAlways": false,
    "rotationIcons": false
}

Example using type boolean rotation

"rotation": true

portalConfig.map.controls.startModule🔗

The startModule attribute must be of type Object. A button is displayed for each configured module, which can be used to open and close the respective module.

Name Required Type Default Description
mainMenu no mainMenu[] Here you can configure the modules for which a button should be displayed. These will be displayed in the mainMenu when opened.
secondaryMenu no secondaryMenu[] Here you can configure the modules for which a button should be displayed. These will be displayed in the secondaryMenu when opened.
supportedDevices no String ["Desktop", "Mobile", "Table"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.

Example

"startModule": {
    "mainMenu": [
        {
            "type": "scaleSwitcher"
        }
    ],
    "secondaryMenu": [
        {
            "type": "myModule"
        }
    ]
}

portalConfig.map.controls.startModule.mainMenu🔗

Here you can configure the modules for which a button is to be displayed. These are displayed in the mainMenu when opened.

Name Required Type Default Description
type no String Type of the module that is to be displayed as a control and opened in the mainMenu when clicked.

Example

"mainMenu": [
    {
        "type": "scaleSwitcher"
    }
]

portalConfig.map.controls.startModule.secondaryMenu🔗

Here you can configure the modules for which a button is to be displayed. These are displayed in the secondaryMenu when opened.

Name Required Type Default Description
type no String Type of the module that is to be displayed as a control and opened in the secondaryMenu when clicked.

Example

"secondaryMenu": [
    {
        "type": "scaleSwitcher"
    }
]

portalConfig.map.controls.tiltView🔗

Displays two buttons that can be used to tilt the camera up or down in the 3D scene.

The tiltView attribute can be of type Boolean or Object. If it is of type Boolean, it shows the buttons that are set in the default settings. If it is of type Object, the following attributes apply:

Name Required Type Default Description
tiltDownIcon no String "bi-caret-down-square" The tiltDownIcon parameter can be used to specify a different icon for tilt down.
tiltUpIcon no String "bi-caret-up-square" Using the parameter tiltUpIcon another icon can be used for tilting up the camera.
supportedDevices no String ["Desktop"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["3D"] Map modes in which the module can be used and is displayed in the menu.

Example tiltView as Object

"tiltView" : {
    "tiltDownIcon": "bi-caret-down-square",
    "tiltUpIcon": "bi-caret-up-square",
},

Example tiltView as boolean

"tiltView": true

portalConfig.map.controls.totalView🔗

Offers a button to return to the initial view.

The attribute totalView may be of type boolean or object. If of type boolean, it shows a button using the default configuration that allows the user to switch back to the initial view. When of type object, the following attributes may be set:

Name Required Type Default Description
icon no String "bi-skip-backward-fill" Using the icon parameter, a different icon can be used to switch back to the home screen.
supportedDevices no String ["Desktop"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.

Example totalView as Object

"totalView" : {
    "icon": "bi-skip-forward-fill"
},

Example totalView as Boolean

"totalView": true

portalConfig.map.controls.zoom🔗

Defines whether zoom buttons should be displayed.

The attribute zoom may be of type boolean or object. If of type boolean, it shows two buttons using the default configuration that allows the user to zoom in the map. When of type object, the following attributes may be set:

Name Required Type Default Description
iconIn no String "bi-plus-lg" Using the icon parameter, another icon can be used for zooming in.
iconOut no String "bi-dash-lg" Using the icon parameter, another icon can be used for zooming out.
supportedDevices no String ["Desktop"] Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String ["2D", "3D"] Map modes in which the module can be used and is displayed in the menu.

Example zoom as Object

"zom" : {
    "iconIn": "bi-plus-lg",
    "iconOut": "bi-dash-lg"
},

Example zoom as Boolean

"zoom": true

portalConfig.map.featureViaURL🔗

Optional configuration for the URL parameter featureViaURL. See urlParameter for details.

Name Required Type Default Description
epsg no Integer 4326 EPSG code for coordinate reference system to translate coordinates to.
layers yes layers[] Layer configuration array for given features.
zoomTo no String/String[] Id of layers or array thereof, to which the Masterportal initially zooms. If none are given, the usual initial center coordinate is used.

Example:

{
    "featureViaURL": {
        "epsg": 25832,
        "zoomTo": "urlPointFeatures",
        "layers": [
            {
                "id": "urlPointFeatures",
                "geometryType": "Point",
                "name": "URL Point Features",
                "styleId": "url_points"
            },
            {
                "id": "urlLineFeatures",
                "geometryType": "LineString",
                "name": "URL Line Features",
                "styleId": "url_lines"
            },
            {
                "id": "urlPolygonFeatures",
                "geometryType": "Polygon",
                "name": "URL Polygon Features",
                "styleId": "url_polygons"
            },
            {
                "id": "urlMultiPointFeatures",
                "geometryType": "MultiPoint",
                "name": "URL MultiPoint Features",
                "styleId": "url_mulitpoints"
            },
            {
                "id": "urlMultiLineStringFeatures",
                "geometryType": "MultiLineString",
                "name": "URL MultiLineString Features",
                "styleId": "url_multilinestring"
            },
            {
                "id": "urlMultiPolygonFeatures",
                "geometryType": "MultiPolygon",
                "name": "URL MultiPolygon Features",
                "styleId": "url_multipolygons"
            }
        ]
    }
}

portalConfig.map.featureViaURL.layers🔗

The parameters described apply for each entry of the layers array.

Name Required Type Default Description
id yes String unique ID for the layer to be created
geometryType yes enum["LineString", "Point", "Polygon", "MultiPoint", "MultiLineString", "MultiPolygon"] Geometry type of the feature to be shown.
name yes String Layer name displayed in the layer tree, the legend, and the GFI pop-up.
styleId no String Style id to be used for the feature, referring to the style.json.

Example:

{
    "layers": [{
        "id": "urlPolygonFeatures",
        "geometryType": "Polygon",
        "name": "URL Polygon Features",
        "styleId": "url_polygons"
    }]
}

portalConfig.map.getFeatureInfo🔗

Displays information to a clicked feature by firing a GetFeatureInfo or GetFeature request, respectively using the loaded data on vector layers.

On all GFI request types except directly fetching HTML, which is done by using "text/html" as "infoFormat" on a WMS, the "|" character is interpreted as linebreak. You may also use "\r\n" or "\n".

Name Required Type Default Description
centerMapToClickPoint no Boolean false If true, centers any clicked feature on the map.
coloredHighlighting3D no coloredHighlighting3D Rule definition to override the highlighting of clicked 3D tiles.
hideMapMarkerOnVectorHighlight no Boolean false If set to true, the mapmarker won't be shown on vector highlighting. Only applies for the DetachedTemplate
highlightVectorRules no highlightVectorRules Rule definition to override the styling of clicked vector data.
icon no String "bi-info-circle-fill" CSS icon class. Icon is shown before the tool name.
menuSide no String "secondaryMenu" Specifies in which menu the information should be displayed.
name yes String "common:modules.getFeatureInfo.name" Name displayed in the menu.
showPolygonMarkerForWMS no Boolean false If set to true, Polygonmarker will be shown for WMS features with geometry.

Example of a GetFeatureInfo configuration.

"getFeatureInfo": {
    "name": "Request information",
    "icon": "bi-info-circle-fill",
    "coloredHighlighting3D": {
        "enabled": true,
        "color": "GREEN"
    },
    "highlightVectorRules": {
        "fill": {
            "color": [215, 102, 41, 0.9]
        },
        "image": {
            "scale": 1.5
        },
        "stroke": {
            "width": 4
        },
        "text": {
            "scale": 2
        }
    },
    "showPolygonMarkerForWMS": true,
    "hideMapMarkerOnVectorHighlight": true
}

Example of a GetFeatureInfo configuration to retrieve information from features.

"getFeatureInfo": {
    "name": "Request information"
}

portalConfig.map.getFeatureInfo.coloredHighlighting3D🔗

Highlight Setting of 3D Tiles. If e.g. a building is selected by left mouse click, it will be highlighted in the given color. For color configuration see Color-documentation

Name Required Type Default Description
color no String/String[] "RED" Color can be configured as Array or Cesium.Color (definition e.g "GREEN" for Cesium.Color.GREEN)

Example

"coloredHighlighting3D": {
    "enabled": true,
    "color": "GREEN"
}

portalConfig.map.getFeatureInfo.highlightVectorRules🔗

Configuration list to overwrite vector styles on gfi requests.

Hint: highlighting only works if there is a styleId in config.json configured for the layer.

Name Required Type Default Description
fill no fill [255, 255, 255, 0.5] Settable field: color
image no image 1 Settable field: scale
stroke no stroke 1 Settable field: width
text no text Settable field: scale

portalConfig.map.getFeatureInfo.highlightVectorRules.text🔗
Name Required Type Default Description
scale no Float 1 Text scale number

Example

"text": {
    "scale": 2
}

portalConfig.map.layerPills🔗

Configuration to make settings for LayerPills.

Layerpills are buttons on top of the map that show the selected layers. When clicking on a LayerPill, the corresponding layer information is displayed in the menu. The close button deselects the layer. The LayerPills attribute is specified as an object and contains the following attributes:

Name Required Type Default Description
active no Boolean false Indicates whether LayerPills are active.
mobileOnly no Boolean false Defines whether LayerPills should only be active in the mobile version.

Example

"layerPills": {
    "active": true,
    "mobileOnly": true
}

portalConfig.map.map3dParameter🔗

Cesium Scene settings in 3D mode. For more attributes see Scene

Name Required Type Default Description
camera no camera Cesium Scene camera settings in 3D mode.
fog no fog Cesium Scene fog settings in 3D mode.
fxaa no Boolean true activates fast approximate anti-aliasing
globe no globe Cesium Scene globe settings in 3D mode.
maximumScreenSpaceError no Number 2.0 Detail level in which terrain/raster tiles are fetched. 4/3 is the highest quality level.
tileCacheSize no Number 100 terrain/raster tile cache size
shadowTime no String "current time" Sets the time used to calculate shadows in 3D mode. Use the ISO-8601 string format. If not provided, shadows are calculated based on the current system time. Useful for freezing shadows for presentations or consistent visualization at a specific date/time.

Example

{
    "camera": {
        "altitude": 127,
        "heading": -1.2502079000000208,
        "tilt": 45
    },
    "fog": {
        "enabled": true
    },
    "fxaa": true,
    "globe": {
        "enableLighting": true
    },
    "maximumScreenSpaceError": 2,
    "tileCacheSize": 20,
    "shadowTime": "2025-07-01T12:00:00Z"
}

portalConfig.map.map3dParameter.camera🔗

Cesium Scene camera settings in 3D mode. The camera is defined by a position, orientation, and view frustum. For more attributes see Scene

Name Required Type Default Description
altitude no Number 0 Camera's initial height in meters. Not used if cameraPosition is set.
cameraPosition no enum Camera position containing longitude, latitude and height in meters, above the ellipsoid. If this is set, pitch and roll are used to create the direction. Altitude and tilt are not used then.
heading no Number 0 Camera's initial heading in radians. Is always used.
offset no Number 0 Offset for the initial center coordinate in the 3D map if the initial cameraPosition has been changed, e.g., by moving the map or clicking on a search result. If this is not set here, the initial camera position of the 3D map will not be applied to the current center coordinate.
pitch no Number 0 Camera's initial pitch value. Only used if cameraPosition is set.
roll no Number 0 Camera's initial roll value. Only used if cameraPosition is set.
tilt no Number 0 Camera's initial tile in radians. Not used if cameraPosition is set.

Example

{
    "camera": {
        "altitude": 127,
        "heading": -1.2502079000000208,
        "tilt": 45
    }
}

Example with cameraPosition

{
    "camera": {
        "heading": 0.5094404418943017,
        "pitch": -40.0515352133474,
        "cameraPosition": [9.9914497197391, 53.545716220545344, 421.1102528528311],
        "offset": "-0.0045"
    }
}

portalConfig.map.map3dParameter.fog🔗

Cesium Scene fog settings in 3D mode. Blends the atmosphere to geometry far from the camera for horizon views. For more attributes see Scene

Name Required Type Default Description
enabled no Boolean false True if fog is enabled.

Example

{
    "fog": {
        "enabled": true
    }
}

portalConfig.map.map3dParameter.globe🔗

Cesium Scene globe settings in 3D mode. The globe rendered in the scene, including its terrain and imagery layers. For more attributes see Scene

Name Required Type Default Description
enableLighting no Boolean false Activates light effects on the map based on the sun's position.

Example

{
    "globe": {
        "enableLighting": true
    }
}

portalConfig.map.mapMarker🔗

Overrides the map marker module's default values. Useful for 3D markers since OpenLayers's overlays can not be displayed in 3D mode. For this, the map marker has to be defined as vector layer.

Name Required Type Default Description
pointStyleId no String "defaultMapMarkerPoint" StyleId to refer to a style.json point style. If not set, the img/mapMarker.svg is used.
polygonStyleId no String "defaultMapMarkerPolygon" StyleId to refer to a style.json polygon style.
additionalPolygonStyleId no String "defaultAdditionalMapMarkerPolygon" StyleId to refer to an additional style.json polygon style.

Example:

{
    "mapMarker": {
        "pointStyleId": "customMapMarkerPoint",
        "polygonStyleId": "customMapMarkerPolygon",
        "additionalPolygonStyleId": "customAdditionalMapMarkerPolygon"
    }
}

portalConfig.map.mapView🔗

Defines the initial map view and a background shown when no layer or map is selected.

Name Required Type Default Description
backgroundImage no String "https://bitbucket.org/geowerkstatt-hamburg/masterportal/src/dev/doc/config.json.md#portalconfigmapview" Path to an alternative background image.
epsg no String "EPSG:25832" Coordinate reference system EPSG code. The code must be defined as a namedProjection.
extent no Extent [510000.0, 5850000.0, 625000.4, 6000000.0] Map extent - map may not be moved outside these boundaries.
mapInteractions nein mapInteractions Overrides the ol map interactions. Provides further configuration possibilities for control behaviour and keyboardEventTarget.
options no option[] [{"resolution":66.14579761460263,"scale":250000,"zoomLevel":0}, {"resolution":26.458319045841044,"scale":100000,"zoomLevel":1}, {"resolution":15.874991427504629,"scale":60000,"zoomLevel":2}, {"resolution": 10.583327618336419,"scale":40000,"zoomLevel":3}, {"resolution":5.2916638091682096,"scale":20000,"zoomLevel":4}, {"resolution":2.6458319045841048,"scale":10000,"zoomLevel":5}, {"resolution":1.3229159522920524,"scale":5000,"zoomLevel":6}, {"resolution":0.6614579761460262,"scale":2500,"zoomLevel":7}, {"resolution":0.2645831904584105,"scale": 1000,"zoomLevel":8}, {"resolution":0.13229159522920521,"scale":500,"zoomLevel":9}] Available scale levels and their resolutions.
startCenter no Coordinate [565874, 5934140] The initial center coordinate.
startResolution no Float 15.874991427504629 The initial map resolution from the options element. Used in preference to startZoomLevel.
startZoomLevel no Integer The initial map zoom level from the options element. If resolutions is set, this is ignored.

Example

{
    "mapView": {
        "backgroundImage": "https://geodienste.hamburg.de/lgv-config/img/backgroundCanvas.jpeg",
        "startCenter": [561210, 5932600],
        "options": [
            {
                "resolution": 611.4974492763076,
                "scale": 2311167,
                "zoomLevel": 0
            },
            {
                "resolution": 305.7487246381551,
                "scale": 1155583,
                "zoomLevel": 1
            },
            {
                "resolution": 152.87436231907702,
                "scale": 577791,
                "zoomLevel": 2
            },
            {
                "resolution": 76.43718115953851,
                "scale": 288896,
                "zoomLevel": 3
            },
            {
                "resolution": 38.21859057976939,
                "scale": 144448,
                "zoomLevel": 4
            },
            {
                "resolution": 19.109295289884642,
                "scale": 72223,
                "zoomLevel": 5
            },
            {
                "resolution": 9.554647644942321,
                "scale": 36112,
                "zoomLevel": 6
            },
            {
                "resolution": 4.7773238224711605,
                "scale": 18056,
                "zoomLevel": 7
            },
            {
                "resolution": 2.3886619112355802,
                "scale": 9028,
                "zoomLevel": 8
            },
            {
                "resolution": 1.1943309556178034,
                "scale": 4514,
                "zoomLevel": 9
            },
            {
                "resolution": 0.5971654778089017,
                "scale": 2257,
                "zoomLevel": 10
            }
        ],
        "extent": [510000.0, 5850000.0, 625000.4, 6000000.0],
        "StartResolution": 15.874991427504629,
        "StartZoomLevel": 1,
        "epsg": "EPSG:25832"
    }
}

portalConfig.map.mapView.mapInteractions🔗

Overrides the ol map interactions. Provides further configuration possibilities for control behaviour and keyboardEventTarget.

Name Required Type Default Description
interactionModes no interactionModes {"dragPan": false, "altShiftDragRotate": false, "pinchRotate": false} Interaction settings for the ol default interactions. If not set, the default setting is used.
keyboardEventTarget no Boolean false Possibility to set the keyboard event target for the ol map e.g keyboardEventTarget: document

Example:

{
    "mapInteractions": {
        "interactionModes": {
            "dragPan": false,
            "altShiftDragRotate": true,
            "pinchRotate": false,
            "dragZoom": true
        },
        "keyboardEventTarget": false
    }
}

portalConfig.map.mapView.mapInteractions.interactionModes🔗

Interaction settings for the ol default interactions. If not set, the default setting is used.

Name Required Type Default Description
altShiftDragRotate no Boolean true Rotate the map with alt + shift + drag.
dragPan no Boolean false Allows the user to move the map by dragging it.
dragZoom no Boolean false Allows the user to zoom the map by clicking and dragging on the map.
pinchRotate no Boolean false Allows the user to rotate the map by twisting with two fingers on a touch screen.
twoFingerPan no Boolean false Should a 2-Finger-Pan be set on mobile devices instead of a 1-Finger-Pan?

Example

"interactionModes": {
    "dragPan": false,
    "altShiftDragRotate": true,
    "pinchRotate": false,
    "dragZoom": true,
    "twoFingerPan": true
}

portalConfig.map.mapView.option🔗

An option defines a zoom level. Each zoom level is defined by resolution, scale number, and a unique zoom level. The higher the zoom level, the smaller the scale and the closer you have zoomed.

Name Required Type Default Description
resolution yes Number Zoom level definition's resolution.
scale yes Integer Zoom level definition's scale.
zoomLevel yes Integer Zoom level definition's zoom level.

mapView option example

{
    "resolution": 611.4974492763076,
    "scale": 2311167,
    "zoomLevel": 0
}

portalConfig.map.mouseHover🔗

Enables the MouseHover function for vector layers, e.g. WFS or GeoJSON. For per-layer configuration see Vector.

Name Required Type Default Description
infoText no String "common:modules.mouseHover.infoText" Text that will be displayed if the features exceed the number of numFeaturesToShow.
numFeaturesToShow no Integer 2 Maximum amount of element information per tooltip; when exceeded, an information text informs the user of cut content.
fontFamily no String "common:modules.mouseHover.fontFamily" Font family for the description
fontStyle no String "common:modules.mouseHover.fontStyle" Font style for the description
fontWeight no String "common:modules.mouseHover.fontWeight" Font weight for the description
fontSize no String "common:modules.mouseHover.fontSize" Font size for the description
fontColor no String "common:modules.mouseHover.fontColor" Font color for the description
titleFontFamily no String "common:modules.mouseHover.titleFontFamily" Font family for the title
titleFontStyle no String "common:modules.mouseHover.titleFontStyle" Font style for the title
titleFontWeight no String "common:modules.mouseHover.titleFontWeight" Font weight for the title
titleFontSize no String "common:modules.mouseHover.titleFontSize" Font size for the title
titleFontColor no String "common:modules.mouseHover.titleFontColor" Font color for the title
infoBorderRadius no Integer "common:modules.mouseHover.infoBorderRadius" Border radius of the tooltip
lineHeight no Float "common:modules.mouseHover.lineHeight" Line spacing for the tooltip
highlightOnHover no Boolean false If hovered features should be highlighted
highlightVectorRulesPolygon no highlightVectorRulesPolygon Specify the fill color and outline color and stroke width for highlighting the polygon features as well as a zoom parameter.
highlightVectorRulesPointLine no highlightVectorRulesPointLine Specify outline color and stroke width for highlighting lines and fill color and scale factor for highlighting points as well as a zoom parameter.

Example

{
    "mouseHover": {
        "numFeaturesToShow": 1,
        "infoText": "Exampletext",
        "fontFamily": "Arial",
        "fontStyle": "Italic",
        "fontWeight": "Normal",
        "fontSize": 12,
        "fontColor": "#FF0000",
        "titleFontFamily": "Helvetica",
        "titleFontStyle": "Normal",
        "titleFontWeight": "Bold",
        "titleFontSize": 16,
        "titleFontColor": "#1A43BF",
        "infoBorderRadius": 4,
        "lineHeight": 1.6,
        "highlightOnHover": true,
        "highlightVectorRulesPolygon": {
            "fill": {
                "color": [255, 255, 255, 0.5]
            },
            "stroke": {
                "width": 4,
                "color": [255, 0, 0, 0.9]
            }
        },
        "highlightVectorRulesPointLine": {
            "stroke": {
                "width": 8,
                "color": [255, 0, 255, 0.9]
            },
            "image": {
                "scale": 2
            }
        }
    }
}

portalConfig.map.mouseHover.highlightVectorRulesPolygon🔗

Specify the fill color and outline color and stroke width for highlighting the polygon features as well as a zoom level.

Name Required Type Default Description
fill no fill Possible setting: color
stroke no stroke Possible setting: width

portalConfig.map.mouseHover.highlightVectorRulesPolygon.fill🔗
Name Required Type Default Description
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA)
"fill": {
    "color": [215, 102, 41, 0.9]
}

portalConfig.map.mouseHover.highlightVectorRulesPolygon.stroke🔗
Name Required Type Default Description
width no Integer 1 Possible setting: width
color no Float[] [255, 0, 0, 0.9] Possible setting: color (RGBA)
"stroke": {
    "width": 4 ,
    "color": [255, 0, 255, 0.9]
}

portalConfig.map.mouseHover.highlightVectorRulesPointLine🔗

Specify outline color and stroke width for highlighting lines and fill color and scale factor for highlighting points. Also a zoom level.

Name Required Type Default Description
fill no fill Possible setting: color
stroke no stroke Possible setting: width
image no image Possible setting: scale

portalConfig.map.mouseHover.highlightVectorRulesPointLine.fill🔗
Name Required Type Default Description
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA)
"fill": {
    "color": [215, 102, 41, 0.9]
}

portalConfig.map.mouseHover.highlightVectorRulesPointLine.stroke🔗
Name Required Type Default Description
width no Integer 1 Possible setting: width
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA)
"stroke": {
    "width": 4 ,
    "color": [255, 0, 255, 0.9]
}

portalConfig.map.mouseHover.highlightVectorRulesPointLine.image🔗
Name Required Type Default Description
scale no Integer 1.5 Possible setting: scale
"image": {
    "scale": 2
}

portalConfig.map.zoomTo🔗

Configuration for the URL query parameters zoomToFeatureId and zoomToGeometry.

Name Required Type Default Description
addFeatures no Boolean true Specifies whether the desired features should be added to the map in a separate layer.
allowedValues no String[] Only relevant when id equal zoomToGeometry. Further filters the values allowed in the URL query parameters.
id yes enum["zoomToFeatureId", "zoomToGeometry"] Id of the URL query parameter the configuration refers to.
layerId yes String Id of the layer the feature should be fetched from.
property yes String Name of the property the features should be filtered by.
styleId no String Only relevant when id equal zoomToFeatureId. Id of the styleObject that should be used to style the features retrieved from the service.

Example:

{
    "zoomTo": [
        {
            "id": "zoomToGeometry",
            "layerId": "1692",
            "property": "bezirk_name",
            "allowedValues": [
                "ALTONA",
                "HARBURG",
                "HAMBURG-NORD",
                "BERGEDORF",
                "EIMSBÜTTEL",
                "HAMBURG-MITTE",
                "WANDSBEK"
            ]
        },
        {
            "id": "zoomToFeatureId",
            "layerId": "4560",
            "property": "flaechenid",
            "styleId": "location_eventlotse"
        }
    ]
}

portalConfig.menu🔗

Here you can configure the menu items for the mainMenu (in the desktop view on the left) and secondaryMenu (in the desktop view on the right) and their arrangement. The order of the modules results from the order in the Config.json.

Name Required Type Default Description
currentComponent no String "" Defines a module that is opened initially. Please mind that modules nested in folders can not be opened this way. If a module is present multiple times, all instances will be opened in order of appearence, which may result in unexpected behaviour.
expanded no Boolean false Defines whether the respective menu is expanded or collapsed when the portal is started.
width no String "25%" Sets the initial width of the respective menu as a percentage value.
showDescription no Boolean Defines whether a description of the modules should be displayed in the respective menu.
showHeaderIcon no Boolean false Defines whether the icon of the current module is shown in the menu header
searchBar no searchBar The search bar allows requesting information from various search services at once.
sections no sections[] Subdivision of modules in the menu.
title no title The portal's title and further elements to be shown in the main menu bar.

portalConfig.menu.searchBar🔗

Configuration of the search bar. Different search services can be configured.

Name Required Type Default Description
minCharacters no Integer 3 Minimum amount of characters before sending a request to an external service.
placeholder no String "common:modules.searchBar.placeholder.address" Input text field placeholder shown when no input has been given yet.
coloredHighlighting3D no coloredHighlighting3D "" Configures the color for 3D tile highlighting in a Cesium 3D scene.
searchInterfaces no searchInterfaces[] Interfaces to search services.
timeout no Integer 5000 Service request timeout in milliseconds.
zoomLevel no Integer 7 ZoomLevel to which the searchbar zooms in at maximum.

Example

{
    "searchBar": {
        "minCharacters": 3,
        "placeholder": "common:modules.searchBar.placeholder.address",
        "searchInterfaces": [
            {
                "type": "gazetteer",
                "serviceId": "6",
                "searchAddress": true,
                "searchStreets": true,
                "searchHouseNumbers": true,
                "searchDistricts": true,
                "searchParcels": true,
                "searchStreetKey": true
            }
        ],
        "timeout": 5000,
        "zoomLevel": 7
    }
}

portalConfig.menu.searchBar.coloredHighlighting3D🔗

Enables and configures the 3D highlighting feature for tiles in a Cesium 3D scene. This allows selected features to be visually emphasized by changing their color.

Name Required Type Default Description
color no String/String[] "RED" The highlight color for the 3D tile feature. This can be set using:
1. String (e.g., "YELLOW", "BLUE") – A predefined Cesium color.
(e.g., "rgba(0, 255, 255, 1)") – A standard RGBA color format, where the alpha value is between 0 (fully transparent) and 1 (fully opaque).
(e.g., "rgb(0, 255, 255)") – A standard RGB color format.
(e.g., "#FF0000") – A standard hex color format.
2. Array (RGBA) – An array of four values [R, G, B, A].
3. Array (RGB) – An array of three values [R, G, B].
Important: For RGBA values, alpha (A) must be between 0 (fully transparent) and 255 (fully opaque). Example: [255, 255, 0, 0] for yellow with full feature transparency, [255, 255, 0, 255] for yellow with full feature opacity.

The Vuex action highlight3DTileByCoordinates will:

  1. Check if the current map mode is 3D.
  2. Convert the given longitude and latitude into Cartesian coordinates.
  3. Project the coordinates onto the screen.
  4. Retrieve the configured highlight color from config.json.
  5. If a feature is picked at the screen position, apply the highlight color.
  6. If no feature is initially found, wait for all tiles to load before attempting to highlight again.

  7. If the feature at the given coordinates is found, it will be highlighted with the specified color.

  8. If an invalid color is provided, a warning will be displayed in the console.
  9. If all 3D tiles are not yet loaded, highlighting will be delayed until loading is complete.

Example

{
    "searchBar": {
        "minCharacters": 3,
        "placeholder": "common:modules.searchBar.placeholder.address",
        "coloredHighlighting3D":{
          "color": "YELLOW"
        }
    }
}

portalConfig.menu.searchBar.searchInterfaces🔗

Definitions of the search interfaces.

Name Required Type Default Description
bkg no bkg BKG search service configuration.
elasticSearch no elasticSearch Elastic search service configuration.
gazetteer no gazetteer Configuration of the Gazetteer search service.
komootPhoton no komootPhoton Komoot Photon search service configuration.
locationFinder no locationFinder LocationFinder search service configuration.
osmNominatim no osmNominatim OpenStreetMap (OSM) search service configuration.
specialWFS no specialWFS specialWFS search service configuration.
topicTree no topicTree Topic selection tree search configuration.
visibleVector no visibleVector Visible vector layer search configuration.

Example

"searchInterfaces": [
    {
        "type": "gazetteer",
        "serviceId": "6",
        "searchAddress": true,
        "searchStreets": true,
        "searchHouseNumbers": true,
        "searchDistricts": true,
        "searchParcels": true,
        "searchStreetKey": true
    }
]

portalConfig.menu.searchBar.searchInterfaces.bkg🔗

BKG search service configuration.

Attention: This requires a backend!

To avoid openly using your BKG UUID, URLs ("bkg_geosearch" and "bkg_suggest" in this case) of the restServices should be caught and redirected in a proxy.

Example proxy configuration

ProxyPass /bkg_geosearch http://sg.geodatenzentrum.de/gdz_geokodierung__[UUID]/geosearch
<Location /bkg_geosearch>
  ProxyPassReverse http://sg.geodatenzentrum.de/gdz_geokodierung__[UUID]/geosearch
</Location>

ProxyPass /bkg_suggest http://sg.geodatenzentrum.de/gdz_geokodierung__[UUID]/suggest
<Location /bkg_suggest>
  ProxyPassReverse http://sg.geodatenzentrum.de/gdz_geokodierung__[UUID]/suggest
</Location>
Name Required Type Default Description
epsg no String "EPSG:25832" EPSG code of the coordinate reference system to use.
extent no Extent [454591, 5809000, 700000, 6075769] Coordinate extent in which search algorithms should return.
geoSearchServiceId yes String Search service id. Resolved using the rest-services.json file.
minScore no Number 0.6 Score defining the minimum quality of search results.
resultCount no Integer 20 Maximum number of search hits returned by the service.
resultEvents no resultEvents {"onClick": ["setMarker", "zoomToResult"], "onHover": ["setMarker"], "buttons": ["startRouting"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "setMarker", "zoomToResult", "startRouting".
type yes String "bkg" Search interface type. Defines which search interface is configured.

Example

{
    "geoSearchServiceId": "5",
    "extent": [454591, 5809000, 700000, 6075769],
    "resultCount": 10,
    "epsg": "EPSG:25832",
    "minScore": 0.6,
    "type": "bkg"
}

portalConfig.menu.searchBar.searchInterfaces.elasticSearch🔗

Elasticsearch service configuration.

Name Required Type Default Description
hitIcon no String "bi-signpost-2" CSS icon class of search results, shown before the result name.
hitMap no hitMap Object mapping result object attributes to keys.
hitTemplate no String "default" Template in which the search results (show all) are displayed. Possible values are "default" and "layer".
hitType no String "common:modules.searchbar.type.subject" Search result type shown in the result list after the result name. Set to the translation key.
resultEvents no resultEvents {"onClick": ["addLayerToTopicTree"], "buttons": ["showInTree", "showLayerInfo"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "addLayerToTopicTree", "setMarker", "showInTree", "showLayerInfo", "startRouting", "zoomToResult", "highlight3DTileByCoordinates".
requestType no enum["POST", "GET"] "POST" Request type
responseEntryPath no String "" Response JSON attribute path to found features.
searchInterfaceId no String "elasticSearch" Id, which is used to link to the searchbar in the topic search.
searchStringAttribute no String "searchString" Search string attribute name for payload object.
serviceId yes String Search service id. Resolved using the rest-services.json file.
type yes String "elasticSearch" Search interface type. Defines which search interface is configured.

As an additional property, you may add payload. It is not required, and matches the custom object description. By default, it is set to the empty object {}. The object describes the payload to be sent as part of the request. It must provide the searchString attribute. For more info on usable attributes, see Elasticsearch Guide. This object can not be handled in the Admintool, since custom objects are not yet supported.

Example

{
    "type": "elasticSearch",
    "searchInterfaceId":"elasticSearch_0",
    "serviceId":"elastic",
    "requestType": "GET",
    "payload": {
        "id":"query",
        "params":{
            "query_string":""
        }
    },
    "searchStringAttribute": "query_string",
    "responseEntryPath": "hits.hits",
    "hitMap": {
        "name": "_source.name",
        "id": "_source.id",
        "source": "_source"
    },
    "hitType": "common:modules.searchbar.type.subject",
    "hitIcon": "bi-list-ul"
}

portalConfig.menu.searchBar.searchInterfaces.elasticSearch.hitMap🔗

Mapping Objekt. Mappt die Attribute des Ergebnis Objektes auf den entsprechenden Key.

Name Required Type Default Description
coordinate no String/String[] Attribute value will be mapped to the attribute key. Required to display a map marker.
id yes String/String[] "id" Attribute value will be mapped to the attribute key. Required to display results.
layerId yes String/String[] Attribute value will be mapped to the attribute key. Required to display results.
name yes String/String[] "name" Attribute value will be mapped to the attribute key. Required to display results.
source yes String/String[] "source" Attribute value will be mapped to the attribute key. Required to display results.
toolTip yes String/String[] Attribute value will be mapped to the attribute key. Required to display results.

Example

"hitMap": {
    "name": "_source.name",
    "id": "_source.id",
    "source": "_source",
    "layerId": "_source.id",
    "toolTip": [
        "_source.name",
        "_source.datasets.md_name"
    ]
}

portalConfig.menu.searchBar.searchInterfaces.gazetteer🔗

Gazetteer search service configuration.

This requires a backend! A WFS's Stored Query is requested with predefined parameters.

Name Required Type Default Description
resultEvents no resultEvents {"onClick": ["setMarker", "zoomToResult"], "onHover": ["setMarker"], "buttons": ["startRouting"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "setMarker", "zoomToResult","highlight3DTileByCoordinates".
searchAddress no Boolean false Defines whether address search is active. For backward compatibility, if "searchAddress" is not configured, the "searchAddress" attribute is set to "true" when "searchStreets" and "searchHouseNumbers" are set to "true".
searchDistricts no Boolean false Defines whether district search is active.
searchHouseNumbers no Boolean false Defines whether house numbers should be searched for. Requires searchStreets to be set to true, too.
searchParcels no Boolean false Defines whether parcels search is active.
searchStreetKey no Boolean false Defines whether streets should be searched for by key.
searchStreets no Boolean false Defines whether street search is active. Precondition to set searchHouseNumbers to true.
serviceId yes String Search service id. Resolved using the rest-services.json file.
showGeographicIdentifier no Boolean false Specifies whether the attribute geographicIdentifier should be used to display the search result.
type yes String "gazetteer" Search interface type. Defines which search interface is configured.

Example

{
    "type": "gazetteer",
    "serviceId": "6",
    "searchAddress": true,
    "searchStreets": true,
    "searchHouseNumbers": true,
    "searchDistricts": true,
    "searchParcels": true,
    "searchStreetKey": true
}

portalConfig.menu.searchBar.searchInterfaces.komootPhoton🔗

Search by Komoot Photon.

Name Required Type Default Description
bbox no string Boundingbox of the search.
lang no string "de" Language of the Komoot Search. Effects language specific locationnames (e.g. Countrynames) aus.
lat no Number Latitude of the center for the search.
limit no Number Maximum amount of requested unfiltered results.
lon no Number Longtitude of the center for the search.
osm_tag no string Filtering of OSM Tags (see https://github.com/komoot/photon#filter-results-by-tags-and-values).
resultEvents no resultEvents {"onClick": ["setMarker", "zoomToResult"], "onHover": ["setMarker"], "buttons": ["startRouting"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "setMarker", "startRouting", "zoomToResult", "highlight3DTileByCoordinates".
serviceId yes String Komoot search service id. Resolved using the rest-services.json file.
type yes String "komootPhoton" Search interface type. Defines which search interface is configured.

Example

{
    "type": "komootPhoton",
    "serviceId": "10",
    "limit": 20,
    "lang": "de",
    "lat": 52.5,
    "lon": 13.4,
    "bbox": "12.5,52.05,14.05,52.75"
}

portalConfig.menu.searchBar.searchInterfaces.locationFinder🔗

Configuration of the search by usage of an ESRI CH LocationFinder.

Name Required Type Default Description
classes no LocationFinderClass May contain classes (with properties) to use in searches. If nothing is specified, all classes are considered valid.
epsg no String Coordinate reference system (EPSG-Code) to use for requests. By default, the value in portalConfig.mapView.epsg is used.
resultEvents no resultEvents {"onClick": ["setMarker", "zoomToResult"], "onHover": ["setMarker"], "buttons": ["startRouting"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "setMarker", "startRouting", "zoomToResult".
serviceId yes String Service id. Resolved using the rest-services.json file.
type yes String "locationFinder" Search interface type. Defines which search interface is configured.

Example

{
    "type": "locationFinder",
    "serviceId": "locationFinder",
    "classes": [
        {
            "name": "Haltestelle",
            "icon": "bi-record-circle"
        },
        {
            "name": "Straßenname"
        }
    ]
}

portalConfig.menu.searchBar.searchInterfaces.locationFinder.LocationFinderClass🔗

Definition of classes that should be considered with the results.

Name Required Type Default Description
displayName no String Display name for the search result category. If set, this will be displayed instead of the name in the search result list. Can also be an i18next translation key (e.g., "common:modules.searchBar.type.address").
icon no String "bi-signpost-2" Class visualization by a icon
name yes String Class name
zoom no String "center" Defines how to zoom to a hit on selection. If center is chosen, the center coordinate (cx, cy) is zoomed to and a marker is placed. If bbox is chosen, the LocationFinder's given BoundingBox (xmin, ymin, xmax, ymax) is zoomed to, and no marker is shown.

Example

{
    "type": "locationFinder",
    "serviceId": "10",
    "classes": [
        {
            "name": "Haltestelle",
            "displayName": "Public Transport Stop",
            "icon": "bi-record-circle"
        },
        {
            "name": "Adresse",
            "displayName": "common:modules.searchBar.type.address",
            "icon": "bi-house-door-fill"
        },
        {
            "name": "Straßenname",
            "displayName": "Street",
            "zoom": "bbox"
        }
    ]
}

portalConfig.menu.searchBar.searchInterfaces.osmNominatim🔗

OpenStreetMap search for city, street, and house number. Only executed on clicking the search icon or pressing enter since the amount of requests to the OSM search service is limited.

Name Required Type Default Description
classes no String [] May contain the classes to search for.
limit no Number 50 Maximum amount of requested unfiltered results.
resultEvents no resultEvents {"onClick": ["setMarker", "zoomToResult"], "onHover": ["setMarker"], "buttons": ["startRouting"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "setMarker", "startRouting", "zoomToResult", "highlight3DTileByCoordinates".
serviceId yes String OSM search service id. Resolved using the rest-services.json file.
states no string "" May contain federal state names with arbitrary separators. Names may also be used in English depending on whether the data has been added to the free open source project OpenStreetMap.
type yes String "osmNominatim" Search interface type. Defines which search interface is configured.

Example

{
    "type": "osmNominatim",
    "serviceId": "10",
    "limit": 60,
    "states": "Hamburg, Nordrhein-Westfalen, Niedersachsen, Rhineland-Palatinate Rheinland-Pfalz",
    "classes": "place,highway,building,shop,historic,leisure,city,county"
}

portalConfig.menu.searchBar.searchInterfaces.specialWFS🔗

WFS search function configuration. Requests features from a WFS. The service must be configured to allow WFS 2.0 requests.

For example, on entering "Kronenmatten" the service https://geoportal.freiburg.de/geoportal_freiburg_de/wfs/stpla_bplan/wfs_mapfile/geltungsbereiche will be requested with the following XML attached as payload, and the service will answer with an XML FeatureCollection. The collection features will then be offered as search results.

<?xml version='1.0' encoding='UTF-8'?>
<wfs:GetFeature service='WFS' xmlns:wfs='http://www.opengis.net/wfs' xmlns:ogc='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml' traverseXlinkDepth='*' version='1.1.0'>
    <wfs:Query typeName='ms:geltungsbereiche'>
        <wfs:PropertyName>ms:planbez</wfs:PropertyName>
        <wfs:PropertyName>ms:msGeometry</wfs:PropertyName>
        <wfs:maxFeatures>20</wfs:maxFeatures>
        <ogc:Filter>
            <ogc:PropertyIsLike matchCase='false' wildCard='*' singleChar='#' escapeChar='!'>
                <ogc:PropertyName>ms:planbez</ogc:PropertyName>
                <ogc:Literal>*Kronenmatten*</ogc:Literal>
            </ogc:PropertyIsLike>
        </ogc:Filter>
    </wfs:Query>
</wfs:GetFeature>

The WFS 2.0 query is dynamically created by the Masterportal. No stored query configuration is required in the service.

Name Required Type Default Description
definitions no definition *[] Special WFS search definitions.
geometryName no String "app:geom" Geometry attribute name required for zoom functionality. Overwritable by a definition.
icon no String "bi-house-fill" Default icon used in the suggestion list. Overwritable by a definition.
maxFeatures no Integer 20 Maximum amount of features to be returned. Overwritable by a definition.
namespaces no String "xmlns:wfs='http://www.opengis.net/wfs' xmlns:ogc='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml'" XML name spaces to request propertyNames or geometryName. (xmlns:wfs, xmlns:ogc, and xmlns:gml are always used.) Overwritable by a definition.
resultEvents no resultEvents {"onClick": ["highlightFeature", "setMarker", "zoomToResult"], "onHover": ["highlightFeature", "setMarker"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "highlightFeature", "setMarker", "zoomToResult".
type yes String "specialWFS" Search interface type. Defines which search interface is configured.

Example

{
    "type": "specialWfs",
    "definitions": [
        {
            "url": "https://geodienste.hamburg.de/MRH_WFS_Rotenburg",
            "typeName": "app:mrh_row_bplan",
            "propertyNames": ["app:name"],
            "name": "B-Plan",
            "namespaces": "xmlns:app='http://www.deegree.org/app'"
        },
        {
            "url": "/geodienste.hamburg.de/HH_WFS_Bebauungsplaene",
            "typeName": "app:prosin_imverfahren",
            "propertyNames": ["app:plan"],
            "geometryName": "app:the_geom",
            "name": "im Verfahren",
            "namespaces": "xmlns:app='http://www.deegree.org/app'"
        }
    ]
}

portalConfig.menu.searchBar.searchInterfaces.specialWFS.definition🔗

Configuration of definition of the SpecialWFS search.

Name Required Type Default Description
geometryName no String "app:geom" Geometry attribute name required for zoom functionality.
icon no String "bi-house-fill" CSS icon class of search results, shown before the result name.
maxFeatures no Integer 20 Maximum amount of features to be returned.
name no String Category name displayed in the suggestion list.
namespaces no String XML name spaces to request propertyNames or geometryName. (xmlns:wfs, xmlns:ogc, and xmlns:gml are always used.)
propertyNames no String[] Array of attribute names to be searched.
typeName no String The name of the WFS layer to be requested.
url no String WFS URL. Depending on your proxy configuration, the relative URL from the portal server must be given.

Example

{
    "url": "https://geodienste.hamburg.de/HH_WFS_Bebauungsplaene",
    "typeName": "app:prosin_imverfahren",
    "propertyNames": ["app:plan"],
    "geometryName": "app:the_geom",
    "name": "im Verfahren"
}

portalConfig.menu.searchBar.searchInterfaces.topicTree🔗

Searching all topic selection tree layers.

Name Required Type Default Description
hitTemplate no String "default" Template in which the search results (show all) are displayed. Possible values are "default" and "layer".
resultEvents no resultEvents {"onClick": ["activateLayerInTopicTree"], "buttons": ["showInTree", "showLayerInfo"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "activateLayerInTopicTree", "showInTree", "showLayerInfo".
searchInterfaceId no String "topicTree" Id, which is used to link to the searchbar in the topic search.
searchType no String "" Decides whether the metadata or the name of a layer should be searched. Possible value: "metadata". The default value is unset so the name will be searched.
toolTip no String "" If path is specified here, the path to the topic/folder found is displayed in the tooltip of the search hit. The name is displayed by default.
type yes String "topicTree" Search interface type. Defines which search interface is configured.

Example

{
    "type": "topicTree",
    "searchInterfaceId": "topicTree"
}

portalConfig.menu.searchBar.searchInterfaces.visibleVector🔗

Visible vector layer search configuration. For all vector layers supposed to be searchable, set the searchField attribute in the layer definition object "Fachdaten".

Name Required Type Default Description
resultEvents no resultEvents {"onClick": ["openGetFeatureInfo", "setMarker", "zoomToResult"], "onHover": ["setMarker"]} Actions that are executed when an interaction, such as hover or click, is performed with a result list item. The following events are possible: "openGetFeatureInfo", "setMarker", "zoomToResult".
type yes String "visibleVector" Search interface type. Defines which search interface is configured.

Example

{
    "type": "visibleVector"
}

portalConfig.menu.searchBar.searchInterfaces.resultEvents🔗

Actions that are executed when an interaction, such as hover or click, is performed with a result list item.

The following events exist. Which events can be configured can be found in the descriptions of the respective search interface:

  • activateLayerInTopicTree: Activates the found layer in the topic tree and map.
  • addLayerToTopicTree: Adds the found layer to the topic tree and map.
  • highligtFeature: Highlights the search result on the map.
  • openGetFeatureInfo: Opens the GetFeatureInfo for the search hit in the menu.
  • showInTree: Opens the topic selection and shows the selected layer.
  • showLayerInfo: Opens the layer information.
  • startRouting: Starts the Routing module with the selected address as destination.
  • setMarker: Places a marker on the map.
  • zoomToResult: Zooms to the search hit.
Name Required Type Default Description
buttons no String[] Buttons that are displayed in the result list for each search result and perform an action when clicked
onClick no String[] Actions that are fired when clicking on a result list item.
onHover no String[] Actions that are fired when hovering on a result list item.

Example 1

"resultEvents": {
    "onClick": ["setMarker", "zoomToResult"],
    "onHover": ["setMarker"]
}

Example 2

"resultEvents": {
    "onClick": ["activateLayerInTopicTree"],
    "buttons": ["showInTree", "showLayerInfo"]
}

portalConfig.menu.sections🔗

Modules can be divided into sections. In the menu, sections are divided with a horizontal line.

Name Required Type Default Description
about no about This module displays specific portal information like description, Masterportal version, Metadata.
addWMS no addWMS This module allows loading specific WMS layers. This is done by providing a URL. All the service's layers are retrieved and offered in the layer tree in section "External technical data".
bufferAnalysis no bufferAnalysis This buffer analysis allows the selection of a source layer, a buffer radius and a target layer. The chosen buffer radius will then be shown around features of the selected source layer. At the moment a target layer is selected, only the features of this layer will be shown, if they are outside the buffer radii. It is also possible to invert the result. In this case the resulting features will only be show if they are inside the radii.
contact no contact The contact form allows users to send messages to a configured email address. For example, this may be used to allow users to submit errors and suggestions. A file can be appended.
compareFeatures no compareFeatures Offers a comparison option for vector features. The getFeatureInfo (GFI) window will offer a clickable star symbol to put elements on the comparison list. Works when used together with the GFI theme Default.
compareMaps no compareMaps This tool allows users to compare two map layers side by side using a layer swiper.
coordToolkit no coordToolkit Coordinate query: Tool to query coordinates and altitude by mouse click: When clicking in the map, the coordinates are frozen in the display and can also be copied directly to the clipboard. Coordinate search: The coordinate system and the coordinates can be entered via an input mask. The tool then zooms to the corresponding coordinate and places a marker on it. The coordinate systems are obtained from config.js.
copyrightConstraints no copyrightConstraints This module loads copyright constraints via the CSW API and shows it per layer. If no information is present, the configured fallback contact information is shown.
customMenuElement no customMenuElement This module can open a link, display HTML from config.json or an external file, or perform an action. This module can be configured several times in config.json.
draw no draw !Attention: The new draw module is currently within refactoring process you can use the draw module from Masterportal Version 2 with type "draw_old")! The draw tool allows painting points, lines, polygons, circles, double circles, and texts to the map. You may download these drawing as KML, GeoJSON, or GPX.
featureLister no featureLister Lists all features of a vector layer and highlights a feature by mouse over.
fileImport no fileImport Import KML, GeoJSON, and GPX files with this modules.
filter no filter Configuration for an advanced filter for vector layers.
language no language In this module the language of the portal can be switched.
layerClusterToggler no layerClusterToggler This module allows a cluster layers to be active and deactive together.
layerSlider no layerSlider The layerSlider module allows showing arbitrary services in order. This can e.g. be used to show aerial footage from multiple years in succession.
login no login Configuration of login with an OIDC server.
measure no measure Allows measuring areas and distances in the units m/km/nm resp. m²/ha/km².
modeler3D no modeler3D Allows importing 3D models in .gltf, .dae, .obj formats and drawing extrudable 3D polygons.
news no news This module shows all messages from the newsFeedPortalAlerts.json and the config.json of the current portal regardless of the "read" status.
openConfig no openConfig ith this module a configuration file (config.json) can be reloaded at runtime. The modules and map are adapted to the new configuration.
print no print Printing module that can be used to export the map's current view as PDF.
routing no routing Routing module to create routes and isochrones.
scaleSwitcher no scaleSwitcher Module that allows changing the map's current scale.
selectFeatures no selectFeatures Allows selecting a set of vector features by letting the user draw a box on the map. Features in that box will be displayed with GFI information.
shadow no shadow Configuration object for the 3D mode shadow time.
statisticDashboard no statisticDashboard Displaying statistical data.
shareView no shareView Module to share a link to the current map view.
styleVT no styleVT Style selection for VT services. Allows switching between styles of a Vector Tile Layer that provides multiple stylings via the services.json file.
wfsSearch no wfsSearch Makes it possible to create a form to query WFS layers using filters. It is possible to either use a stored query (WFS@2.0.0) or define the query using the defined parameters (WFS@1.1.0).
wfst no wfst WFS-T module to visualize, create, update and delete features.

portalConfig.menu.sections.modules🔗
Name Required Type Default Description
description no String The description that should be shown in the button in the right menu.
icon no String Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String Name of the module in the menu.
showDescription no String Indicates whether the description of the module should be displayed in the menu.
supportedDevices no String Devices on which the module can be used and is displayed in the menu.
supportedMapModes no String Map modes in which the module can be used and is displayed in the menu.
type no String The type of the module. Defines which module is configured.
showEntryDirectly no Boolean Can only be set for modules of type folder, and only for one such folder in the entire project. The folder opens automatically if at least one element in the folder uses showOnlyByLayersVisible (triggered when all layers in the array showOnlyByLayersVisible are visible) and its action is "Maps/activateViewpoint". Note: The folder opens only once per unique combination of visible layers defined in showOnlyByLayersVisible.

Example

{
    "name": "Viewpoints",
    "icon": "bi-binoculars-fill",
    "type": "folder",
    "showEntryDirectly": true,
    "elements": [
        {
            "name": "Buildings for Trade and Services",
            "icon": "bi-bullseye",
            "type": "customMenuElement",
            "supportedMapModes": [
                "3D"
            ],
            "showOnlyByLayersVisible": ["16102"],
            "execute": {
                "action": "Maps/activateViewpoint",
                "payload": {
                    "heading": -0.30858728378862876,
                    "tilt": -90,
                    "altitude": 272.3469798217454,
                    "center": [
                        564028.7954571751,
                        5934555.967867207
                    ],
                    "zoom": 7.456437968949651
                }
            }
        }
    ]
}

portalConfig.menu.sections.modules.about🔗

This module displays specific portal information like description, Masterportal version, Metadata. If cswUrl is configured, the following properties are not displayed: abstractText, contact, title.

Name Required Type Default Description
icon no String "bi-info-circle" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons
name no String "common:modules.about.name" Name of the module in the menu.
type yes String "about" The type of the module. Defines which module is configured.
abstractText no String "" Description text of the portal, only displayed if cswUrl is not set. May contain HTML elements.
contact no contact null Metadata contact information is only displayed if cswUrl is not set.
cswUrl no String "" Metadata URL to load the information to be displayed. Then abstractText, contact, title will not be displayed.
logo no Boolean/String "../../src/assets/img/Logo_Masterportal.svg" Path to the logo. With false the logo is hidden.
logoLink no String "https://masterportal.org" Link that opens in a new tab when you click on the logo.
logoText no String "Masterportallogo" Alternative text that is displayed if the logo cannot be displayed.
metaDataCatalogueId no String "2" Id of the metadata service.
metaId no String "" Id of the metadata object.
metaUrl no String "" URL of the metadata object.
noMetadataLoaded no String "" Text if no metadata is shown.
showAdditionalMetaData no Boolean true Metadata link to show extended metadata.
title no String "" Title of the metadata. Only displayed if cswUrl is not set. May contain HTML elements.
version no Boolean/String true Version specification of the master portal. With true the master portal version is determined automatically. With false the version is hidden.
versionLink no String "https://bitbucket.org/geowerkstatt-hamburg/masterportal/downloads/" Link that opens in a new tab when you click on the version.
ustId no String "" Sales tax identification number in accordance with Section 27 of the Sales Tax Act.
privacyStatementText no String "common:modules.about.privacyStatementText" .
privacyStatementUrl no String "" URL to data privacy policy site.
accessibilityText no String "common:modules.about.accessibilityText" Text for accessibility section.
accessibilityUrl no String "" URL to the accessibility statement site.
hideImprintInFooter no Boolean false If true, the imprint link to the about module is hidden in the footer.

Example with cswUrl
{
    "icon": "bi-cloud-circle",
    "name": "common:modules.about.name",
    "type": "about",
    "cswUrl": "https://metaver.de/csw",
    "metaUrl": "https://metaver.de/trefferanzeige?docuuid=40D48B03-AD1D-407B-B04D-B5BC6855BE15",
    "metaId": "40D48B03-AD1D-407B-B04D-B5BC6855BE15",
    "privacyStatementText": "Text for privacy statement.",
    "privacyStatementUrl": "https://geodienste.hamburg.de/lgv-config/about-files/privacyStatement.pdf",
    "accessibilityText": "Text for accessibility.",
    "accessibilityUrl": "https://geodienste.hamburg.de/lgv-config/about-files/accessibility.pdf",
    "hideImprintInFooter": true
}
Example without cswUrl and meta data
{
    "type": "about",
    "title": "Portal name",
    "abstractText": "Description of the portal<br><br>1st line<br>2nd line",
    "contact": {
                    "name": "testname",
                    "street": "street",
                    "postalCode": "postalCode",
                    "city": "city",
                    "email": "geoservice@example.de"
                }
}


portalConfig.menu.sections.modules.about.contact🔗

Metadata contact information is only displayed if cswUrl is not set.

Name Required Type Default Description
city no String The city.
email no String The email-address.
name no String The name.
positionName no String[] List of positions. Entries may contain HTML elements.
postalCode no String The postcode.
street no String The street.

Beispiel

{
    "name": "testname",
    "positionName": ["<small>Abteilung A</small>", "<small>Teamlead</small>"],
    "street": "Straße",
    "postalCode": "PLZ",
    "city": "Stadt",
    "email": "geoservice@example.de"

portalConfig.menu.sections.modules.addWMS🔗

The module allows for adding additional WMS layers via a provided URL. The GDI-DE recommends setting up a CORS header, see chapter 4.7.1. Schema for a WMS layer URL: www.diensteurl/wmsdienste.

Name Required Type Default Description
featureCount no Number Number of features to return on a GetFeatureInfo query.
icon no String "bi-cloud-plus" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.addWMS.name" Name of the module in the menu.
showInLayerTree no Boolean false ShowInLayerTree setting for the imported layers.
type no String "addWMS" The type of the module. Defines which module is configured.
visibility no Boolean false Visibility setting for the imported layers.
exampleURLs no String[] [] Example URLs displayed under the module.

Example

{
    "icon": "bi-cloud-plus",
    "featureCount": 10,
    "name": "common:modules.addWMS.name",
    "showInLayerTree": false,
    "type": "addWMS",
    "visibility": false,
    "exampleURLs": [
        "https://sgx.geodatenzentrum.de/wms_sentinel2_de",
        "https://sgx.geodatenzentrum.de/wms_landschaften",
        "https://sgx.geodatenzentrum.de/wms_vg5000_0101"
    ]
}

portalConfig.menu.sections.modules.bufferAnalysis🔗

The module highlights features of a target layer, that are located within or outside a circle around the features of a source-Layer. The circle is defined by a buffer-radius. The module requires vector based Data from WFS(❗) services for both the source and the target layer.

Name Required Type Default Description
icon no String "bi-arrows-angle-expand" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.bufferAnalysis.name" Name of the module in the menu.
type no String "bufferAnalysis" The type of the module. Defines which module is configured.

Example

{
    "icon": "bi-arrows-angle-expand",
    "name": "common:modules.bufferAnalysis.name",
    "type": "bufferAnalysis"
}

portalConfig.menu.sections.modules.contact🔗

The contact form allows users to send messages to a configured mail address. A file, e.g. a screenshot, can be attached.

This requires a backend!

Contact uses an SMTP server and calls its sendmail.php.

Name Required Type Default Description
closeAfterSend no Boolean false Flag determining if the contact window should be closed after successfully sending a message.
configuredFileExtensions no String[] Additional file extensions to "png", "jpg" und "jpeg". The backend has to support these file types.
contactInfo no String Additional text shown above the contact form.
deleteAfterSend no Boolean false Flag determining whether the contact form is emptied after successfully sending a message.
fileUpload no Boolean false Flag whether the file upload should be available.
from yes email[] Email sender. Please mind our hints regarding Email safety below.
icon no String "bi-envelope" Icon that is shown in front of the module in the menu. For selection see Bootstrap Icons.
includeSystemInfo no Boolean false Flag determining if the senders system information should be included in the Email.
locationOfCustomerService no String "de" The country the customer service is based in. The parameter is used for the date in the ticketId.
maxFileSize no Number 1048576 The maximum file size in bytes for uploadable content. Default: 1MB.
maxLines no Number 5 Amount of lines (height) for the textArea of the form
name no String "common:modules.contact.name" Name of the module in the menu.
privacyPolicyLink no String "https://www.masterportal.org/datenschutz.html" Link to the full privacy policy. Should be given if showPrivacyPolicy is set to true.
serviceId yes String Email service id. Resolved using the rest-services.json file.
showPrivacyPolicy no Boolean false Flag determining if a checkbox should be displayed for agreeing to the privacy policy.
subject no String The subject to be used for the Email.
to yes email[] Recipient of the Email. Please mind our hints regarding Email safety below.
type no String "contact" The type of the module. Defines which module is configured.
withTicketNo no Boolean true Whether successfully sending a email retrieves a ticket number for the user.
infoMessage no String "common:modules.contact.infoMessage" Explanatory note

Example

{
    "type": "contact",
    "name": "common:menu.contact",
    "icon": "bi-envelope",
    "serviceId": "123",
    "from": [
        {
            "email": "lgvgeoportal-hilfe@gv.hamburg.de",
            "name": "LGVGeoportalHilfe"
        }
    ],
    "to": [
        {
            "email": "lgvgeoportal-hilfe@gv.hamburg.de",
            "name": "LGVGeoportalHilfe"
        }
    ],
    "fileUpload": true,
    "includeSystemInfo": true,
    "closeAfterSend": true,
    "deleteAfterSend": true,
    "withTicketNo": false
}

Hints regarding Email safety

The unchecked usage of sender (FROM), recipient (TO), copy (CC), and blind copy (BCC) by the SMTP server is hereby expressly discouraged for security reasons. The unchecked usage of the customer email as a reply to (REPLY-TO) by the SMTP server is warned against.

We strongly recommend setting FROM and TO manually on the SMTP server without offering an option for external configuration.

For security reasons, Sender (FROM) and Empfänger (TO) sent by the Masterportal to the SMTP server may not be used as an email's FROM and TO without further checks. This would create a security breach that allows sending malicious emails with manipulated FROM and TO by the SMTP server. Should you need the configuration in the Masterportal anyway (as in the example above), the parameters from and to may be used after checking them against a whistelist on the SMTP server, preventing sending to or from email addresses not mentioned on the list.

We recommend not automatically setting the customer's email address in CC (or BCC).

For security reasons, the user may not be automatically set as Copy (CC) or Blind Copy (BCC) of an email. Such an automatism would allow sending malicious emails by entering a foreign mail address via the SMTP server.

We strongly recommend to manually remove CC and BCC on the SMTP server.

There must be no option to set Copy (CC) or Blind Copy (BCC) via the Masterportal. Such a feature could be misused to send malicious emails via the SMTP server.

We warn against automatically setting the customer email as REPLY-TO.

The unchecked copying of data to email headers is warned against depending on the security level (resp. age) of the SMTP server, since the risk of Carriage Return and Line Feed injections may lead to e.g. allowing REPLY-TO from the email header line to be escaped to ultimately manipulate the email header itself. (Example: "test@example.com\r\nBCC:target1@example.com,target2@example.com,(...),target(n)@example.com"). In a more abstract case, UTF attacks may be possible, where normally harmless UTF-16 or UTF-32 characters may change the email header's behavior when interpreted as ANSI or UTF-8, having a comparable effect.


portalConfig.menu.sections.modules.contact.email🔗

Email object containing email address, and display name.

Name Required Type Default Description
email no String The email address.
name no String The display name.

Example

{
    "email": "lgvgeoportal-hilfe@gv.hamburg.de",
    "name":"LGVGeoportalHilfe"
}

portalConfig.menu.sections.modules.compareMaps🔗

This tool allows users to compare two map layers side by side using a layer swiper. Users select layers from the active, visible layers, and the swiper divides the map to show each layer in separate sections. The tool supports WMS and WFS layers.

Name Required Type Default Description
type no String "compareMaps" The type of the module. Defines which module is configured.

Example

{
    "type": "compareMaps",
}

portalConfig.menu.sections.modules.coordToolkit🔗

Coordinates tool: to display the height above sea level in addition to the 2 dimensional coordinates, a 'heightLayerId' of a WMS service that provides the height must be specified. The format XML is expected and the attribute for the heights is expected under the value of the parameter 'heightElementName'.

Name Required Type Default Description
coordInfo no coordInfo An object with explanations for the coordinate reference systems can be stored here.
delimiter no String "Pipe-Symbol" Delimiter of the coordinates when copying the coordinate pair
heightElementName no String Coordinate query: The element name under which the height in the XML is searched.
heightLayerId no String Coordinate query: Id of the WMS layer that provides the height in XML format. If not defined, then no height is displayed.
heightLayerInfo no String An explanation for the height can be deposited here.
heightValueBuilding no String Coordinate query: the value in the element defined under "heightElementName" supplied by the WMS for a non-measured height in the building area, it will display the internationalized text "Building area, no heights available" under the key "common:modules.coordToolkit.noHeightBuilding" in the interface. If this attribute is not specified, then the text provided by the WMS will be displayed.
heightValueWater no String Coordinate query: the value in the element defined under "heightElementName" supplied by the WMS for an unmeasured height in the water area, it will display the internationalized text "Water surface, no heights available" under the key "common:modules.coordToolkit.noHeightWater" in the interface. If this attribute is not specified, then the text provided by the WMS will be displayed.
icon no String "bi-globe" Icon that is shown in front of the module in the menu. For selection see Bootstrap Icons.
name no String "common:modules.coordToolkit.name" Name of the module in the menu.
showCopyButtons no Boolean true Switch to show or hide the buttons for copying the coordinates.
type no String "coordToolkit" The type of the module. Defines which module is configured.
zoomLevel no Number 7 Coordinate search: Specifies the zoom level to which you want to zoom.

Example

{
    "type": "coordToolkit",
    "heightLayerId": "19173",
    "heightElementName": "value_0",
    "heightValueWater": "-20",
    "heightValueBuilding": "200",
    "zoomLevel": 5,
    "heightLayerInfo": "Basis of the height information is the \"Digitalge Höhenmodell Hamburg DGM 1\".",
    "showDescription": true,
    "description": "Determine coordinates from the map or search for coordinates.",
    "coordInfo": {
        "title": "Coordinate reference system for 2D position information, explanations",
        "explanations": [
        "ETRS89_UTM32, EPSG 4647 (zE-N): Reference system ETRS89, mapping rule UTM, zone 32",
        "EPSG 25832: explanations..."
        ]
    }
}

portalConfig.menu.sections.modules.coordToolkit.coordInfo🔗
Name Required Type Default Description
explanations no String[] Array of declarations from which a list is created.
title no string Heading for the explanations of the coordinate reference systems.

portalConfig.menu.sections.modules.copyrightConstraints🔗

Lists the copyright constraints of active layers.

Name Required Type Default Description
name no String "common:modules.copyrightConstraints.name" Title shown in the menu.
icon no String "bi-c-circle" Icon displayed next to the title.
type no String "copyrightConstraints" Defines the module type.
cswUrl no String "https://gdk.gdi-de.org/gdi-de/srv/ger/csw" URL of the CSW interface providing usage information and metadata.
useLayerCswUrl no Boolean false Set this flag to true to use the URL of the CSW Interface specified in the layer specification.
Example
{
    "name": "common:modules.copyrightConstraints.name",
    "icon": "bi-c-circle",
    "type": "copyrightConstraints",
    "cswUrl": "https://gdk.gdi-de.org/gdi-de/srv/ger/csw",
    "useLayerCswUrl": false
}

portalConfig.menu.sections.modules.customMenuElement🔗

This module can open a link, display HTML from config.json or an external file, or perform an action. This module can be configured multiple times in config.json. If htmlContent is specified, then pathToContent is not executed and vice versa.

Name Required Type Default Description
execute no execute Action to be executed by clicking on the menu item.
htmlContent no String HTML displayed in the module. The HTML is not validated, the responsibility for the security of the HTML lies with the operator of the portal.
icon no String "bi-asterisk" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String Name of the module in the menu.
openURL no String Url that is to be opened in a new tab by clicking on the menu item.
pathToContent no String Path to a file containing HTML displayed in the module. The HTML is not validated, the responsibility for the security of the HTML lies with the operator of the portal.
showOnlyByLayersVisible no String[] List of layer IDs that must be visible for the module to appear. If not specified, the module will be visible by default.
type yes String "customMenuElement" The type of the module. Defines which module is configured.

Example

 {
    "type": "customMenuElement",
    "name": "Open url",
    "openURL": "https://geoinfo.hamburg.de/"
 },
{
    "type": "customMenuElement",
    "name": "Open url and show HTML",
    "openURL": "https://geoinfo.hamburg.de/",
    "htmlContent": "<div><h1>This is a Heading</h1><p>url was opened!<p/></div>"
},
{
    "type": "customMenuElement",
    "name": "HTML from config.json und action",
    "htmlContent": "<div><p>This is a paragraph.</p></br><a href=\"https://www.w3schools.com/\" target=\"_blank\">Visit W3Schools.com!</a></div>",
    "execute":{
        "action": "Alerting/addSingleAlert",
        "payload":  {"title":"to all people", "content": "Hallo world"}
    }
},
{
    "type": "customMenuElement",
    "name": "Activate Viewpoint",
    "showOnlyByLayersVisible": ["16102", "33362"],
    "execute": {
        "action": "Maps/activateViewpoint",
        "payload": {
            "layerIds": ["4905", "4538"],
            "heading": -0.30858728378862876,
            "tilt": 0.9321791580603296,
            "altitude": 272.3469798217454,
            "center": [564028.7954571751, 5934555.967867207],
            "zoom": 7.456437968949651
        }
    }
}

portalConfig.menu.sections.modules.customMenuElement.execute🔗

CustomMenuElement Module execute options.

Name Required Type Default Description
action yes String Name and, if applicable, path of the action to be executed.
payload no Payload/viewpointActivation Payload that is transferred to the action.

Example

{
    "action": "Alerting/addSingleAlert",
    "payload":  {"title":"to all people", "content": "Hallo world"}
}

portalConfig.menu.sections.modules.customMenuElement.execute.viewpointActivation🔗

The Maps/activateViewpoint action configures and activates a specific viewpoint on a map. It requires the execute object to include the following payload:

Name Required Type Default Description
layerIds no String[] List of IDs for the map layers to activate.
heading no Number The direction the map is facing, in radians.
tilt no Number Tilt angle of the map view, in radians.
altitude no Number Camera altitude in meters above ground.
center no Number[] [X, Y] coordinates of the center in the map's spatial reference system.
zoom no Number Zoom level of the map view.

Example:

{
    "action": "Maps/activateViewpoint",
    "payload": {
        "layerIds": ["4905", "4538"],
        "heading": -0.30858728378862876,
        "tilt": 0.9321791580603296,
        "altitude": 272.3469798217454,
        "center": [564028.7954571751, 5934555.967867207],
        "zoom": 7.456437968949651
    }
}


portalConfig.menu.sections.modules.draw🔗

Ongoing Refactoring

The new draw module is currently within refactoring process you can use the draw module from Masterportal Version 2 with type "draw_old"! Module used to draw features on the map. This includes points, which may also be represented by symbols, and (double) circles, polygons, polylines, and text.

Name Required Type Default Description
name yes String Tool name in the menu.
iconList no icon[] [{"id": "iconPoint", "type": "simple_point", "value": "simple_point"}, {"id": "yellow pin", "type": "image", "scale": 2, "value": "geo-fill-ylw.svg"}] List of symbols the user may choose from to draw colored symbols or dots. Images may be used, too, as shown in the example.
drawSymbolSettings no drawSymbolSet {"color": [55, 126, 184, 1], "opacity": 1} Pre-configuration for symbol drawing.
addIconsOfActiveLayers no Boolean false Set this flag to true to be able to select the icons and symbols of all WFS layers activated in the topic tree as additional symbols besides the icons configured under drawSymbolSettings.
drawLineSettings no drawLineSet {"strokeWidth": 1, "opacityContour": 1, "colorContour": [0, 0, 0, 1]} Pre-configuration for line drawing.
drawCurveSettings no drawCurveSet {"strokeWidth": 1, "opacityContour": 1, "colorContour": [0, 0, 0, 1]} Pre-configuration for freehand drawing.
drawAreaSettings no drawAreaSet {"strokeWidth": 1, "color": [55, 126, 184, 1], "opacity": 1, "colorContour": [0, 0, 0, 1], "opacityContour": 1} Pre-configuration for area drawing.
drawCircleSettings no drawCircleSet {"circleMethod": "interactive", "unit": "m", "circleRadius": null, "strokeWidth": 1, "color": [55, 126, 184, 1], "opacity": 1, "colorContour": [0, 0, 0, 1], "opacityContour": 1, "tooltipStyle": {"fontSize": "16px", "paddingTop": "3px", "paddingLeft": "3px", "paddingRight": "3px", "backgroundColor": "rgba(255, 255, 255, .9)"}} Pre-configuration for circle drawing.
drawDoubleCircleSettings no drawDoubleCircleSet {"circleMethod": "defined", "unit": "m", "circleRadius": 0, "circleOuterRadius": 0, "strokeWidth": 1, "color": [55, 126, 184, 1], "opacity": 1, "colorContour": [0, 0, 0, 1], "outerColorContour": [0, 0, 0, 1], "opacityContour": 1} Pre-configuration for double circle drawing.
drawSquareSettings no drawSquareSet {"squareMethod": "interactive", "strokeWidth": 1, "squareSide": 0, "unit": "m", "squareArea": 0, "color": [55, 126, 184, 1], "opacity": 1, "colorContour": [0, 0, 0, 1], "opacityContour": 1, "tooltipStyle": {"fontSize": "14px","paddingTop":"3px","paddingLeft":"3px","paddingRight":"3px","backgroundColor":"rgba(255, 255, 255, .9)"}} Pre-configuration for square drawing.
writeTextSettings no writeTextSet {"text": "", "fontSize": 10, "font": "Arial", "color": [55, 126, 184, 1], "opacity": 1} Pre-configuration for text writing.
download no download {"preSelectedFormat": "KML"} Pre-configuration for download.
enableAttributesSelector no Boolean false Enables an button which toggles an edit section for custom attributes on the selected feature.
semicolonCSVDelimiter no Boolean true To decide if the semicolon is used as the delimiter for exported CSV file.

Example

{
    "type": "draw_old",
    "name": "Draw / Write",
    "icon": "bi-pencil-fill",
    "iconList": [
        {
            "id": "iconPoint",
            "type": "simple_point",
            "value": "simple_point"
        },
        {
            "id": "iconMeadow",
            "type": "image",
            "scale": 0.8,
            "value": "meadow.png"
        },
        {
            "id": "yellow pin",
            "type": "image",
            "scale": 2,
            "value": "geo-fill-ylw.svg"
        }
    ],
    "drawDoubleCircleSettings": {
        "circleRadius": 1500,
        "circleOuterRadius": 3000,
        "strokeWidth": 3,
        "color": [55, 126, 184, 0],
        "opacity": 0,
        "colorContour": [228, 26, 28, 1],
        "opacityContour": 1,
        "tooltipStyle": {
            "fontSize": "14px",
            "paddingTop": "3px",
            "paddingLeft": "3px",
            "paddingRight": "3px",
            "backgroundColor": "rgba(255, 255, 255, .9)"
        }
    }
    "semicolonCSVDelimiter": true
}

portalConfig.menu.sections.modules.draw.icon🔗

Dot object consisting of text, type, and value.

Name Required Type Default Description
id yes String Symbol text displayed in the select menu. The id has to be defined in the locale file (usually common) as modules.draw.iconList child. The following entry should begin with icon and contain a representative description. If the key is not found, the id will appear as string on the user interface.
caption no String Deprecated in 3.0.0. Symbol text displayed in the select menu. Unlike id, not only the id itself, but the whole path (modules.draw.iconList + id) has to be given.
type yes enum["image", "simple_point"] Object type to be drawn. If image is chosen, the PNG or SVG file from the value path is drawn. By default, images are to be placed in the /src/assets/img/tools/draw/ directory and should have a height and width of 96px to scale correctly. Alternatively, a working scale factor must be defined. The key simple_point will draw a simple point.
scale no number Scale factor for images.
value yes String Value of the object to be drawn. If no path or URL is set, a file name is expected, and the config.js entry wfsImgPath is expected to be the file's location.

Example

{
    "iconList": [
        {
            "id": "iconPoint",
            "type": "simple_point",
            "value": "simple_point"
        },
        {
            "id": "iconMeadow",
            "type": "image",
            "scale": 0.8,
            "value": "meadow.png"
        },
        {
            "id": "yellow pin",
            "type": "image",
            "scale": 2,
            "value": "geo-fill-ylw.svg"
        }
    ]
}

portalConfig.menu.sections.modules.draw.drawSymbolSet🔗

Object to change the drawing tool's configured point symbol default value.

Name Required Type Default Description
color yes Number[] [55, 126, 184, 1] The pre-configured color of the symbol as RGB color. The alpha channel value is used for point coloring.
opacity yes Number 1 The pre-configured transparency of symbols, given in range [0..1] for point data.

Example

{
    "color": [55, 126, 184, 1],
    "opacity": 1
}

portalConfig.menu.sections.modules.draw.drawLineSet🔗

Object to change the drawing tool's configured line default value.

Name Required Type Default Description
strokeWidth yes Number 1 Pre-configured stroke width of lines in pixels.
colorContour yes Number[] [0, 0, 0, 1] Pre-configured line color in RGBA.
opacityContour yes Number 1 Pre-configured line transparency in range [0..1].

Example

{
    "strokeWidth": 1,
    "opacityContour": 1,
    "colorContour": [0, 0, 0, 1]
}

portalConfig.menu.sections.modules.draw.drawCurveSet🔗

Object to change the drawing tool's configured freehand drawing default value.

Name Required Type Default Description
strokeWidth yes Number 1 Pre-configured stroke width of lines in pixels.
colorContour yes Number[] [0, 0, 0, 1] Pre-configured line color in RGBA.
opacityContour yes Number 1 Pre-configured line transparency in range [0..1].

Example

{
    "strokeWidth": 1,
    "opacityContour": 1,
    "colorContour": [0, 0, 0, 1]
}

portalConfig.menu.sections.modules.draw.drawAreaSet🔗

Object to change the drawing tool's configured area default value.

Name Required Type Default Description
strokeWidth yes Number 1 Pre-configured stroke width of area borders in pixels.
color yes Number[] [55, 126, 184, 1] Pre-configured area color in RGBA.
opacity yes Number 1 Pre-configured area transparency in range [0..1].
colorContour yes Number[] [0, 0, 0, 1] Pre-configured area border color in RGBA.
opacityContour yes Number 1 Pre-configured area border transparency in range [0..1].

Example

{
    "strokeWidth": 1,
    "color": [55, 126, 184, 1],
    "opacity": 1,
    "colorContour": [0, 0, 0, 1],
    "opacityContour": 1
}

portalConfig.menu.sections.modules.draw.drawCircleSet🔗

Object to change the drawing tool's configured circle default value.

Name Required Type Default Description
circleMethod yes String "interactive" Pre-configured method of circle drawing. "interactive": freehand, "defined": by entering fixed values
unit yes String "m" Pre-configured unit regarding the circle's Radius circleRadius when "defined" is chosen as circleMethod.
circleRadius yes Number 0 Pre-configured circle Radius when "defined" is chosen as circleMethod.
strokeWidth yes Number 1 Pre-configured stroke width of circle border in pixels.
color yes Number[] [55, 126, 184, 1] Pre-configured circle color in RGBA.
opacity yes Number 1 Pre-configured circle transparency in range [0..1].
colorContour yes Number[] [0, 0, 0, 1] Pre-configured circle border color in RGBA.
opacityContour yes Number 1 Pre-configured circle border transparency in range [0..1].
tooltipStyle no String {} Pre-configured style for tooltip.

Example

{
    "circleMethod": "interactive",
    "unit": "m",
    "circleRadius": 0,
    "strokeWidth": 1,
    "color": [55, 126, 184, 1],
    "opacity": 1,
    "colorContour": [0, 0, 0, 1],
    "opacityContour": 1
}

portalConfig.menu.sections.modules.draw.drawDoubleCircleSet🔗

Object to change the drawing tool's configured circle default value.

Name Required Type Default Description
circleMethod yes String "defined" Pre-configured method of circle drawing. "interactive": freehand, "defined": by entering fixed values
unit yes String "m" Pre-configured unit regarding the circle's radius circleRadius and circleOuterRadius when "defined" is chosen as circleMethod.
circleRadius yes Number 0 Pre-configured inner circle radius when "defined" is chosen as circleMethod.
circleOuterRadius yes Number 0 Pre-configured outer circle radius when "defined" is chosen as circleMethod.
strokeWidth yes Number 1 Pre-configured stroke width of circle border in pixels.
color yes Number[] [55, 126, 184, 1] Pre-configured circle color in RGBA.
opacity yes Number 1 Pre-configured double circle transparency in range [0..1].
colorContour yes Number[] [0, 0, 0, 1] Pre-configured inner circle border color in RGBA.
outerColorContour yes Number[] [0, 0, 0, 1] Pre-configured outer circle border color in RGBA.
opacityContour yes Number 1 Pre-configured circle border transparency in range [0..1].

Example

{
    "circleMethod": "defined",
    "unit": "m",
    "circleRadius": 0,
    "circleOuterRadius": 0,
    "strokeWidth": 1,
    "color": [55, 126, 184, 1],
    "opacity": 1,
    "colorContour": [0, 0, 0, 1],
    "opacityContour": 1
}

portalConfig.menu.sections.modules.draw.drawSquareSet🔗

Object to change the drawing tool's configured square default value.

Name Required Type Default Description
color yes Number[] [55, 126, 184, 1] Pre-configured square fill color in RGBA.
colorContour yes Number[] [0, 0, 0, 1] Pre-configured square border color in RGBA.
opacity yes Number 1 Pre-configured square fill transparency in range [0..1].
opacityContour yes Number 1 Pre-configured square border transparency in range [0..1].
squareArea yes Number 0 Pre-configured area of the square in m² or km² depending on unit.
squareMethod yes String "interactive" Pre-configured method of square drawing. "interactive": freehand, "defined": by entering fixed values
squareSide yes Number 0 Pre-configured side length of the square. Only relevant if all sides are the same length and squareArea is not used.
strokeWidth yes Number 1 Pre-configured stroke width of square border in pixels.
tooltipStyle no String {} Pre-configured style for the tooltip.
unit yes String "m" Pre-configured unit regarding square side length or area: "m" or "km".

Example

{
    "squareMethod": "interactive",
    "strokeWidth": 1,
    "squareSide": 0,
    "unit": "m",
    "squareArea": 0,
    "color": [55, 126, 184, 1],
    "opacity": 1,
    "colorContour": [0, 0, 0, 1],
    "opacityContour": 1,
    "tooltipStyle": {
        "fontSize": "14px",
        "paddingTop": "3px",
        "paddingLeft": "3px",
        "paddingRight": "3px",
        "backgroundColor": "rgba(255, 255, 255, .9)"
    }
}

portalConfig.menu.sections.modules.draw.writeTextSet🔗

Object to change the drawing tool's configured text default value.

Name Required Type Default Description
text yes String "" Pre-configured text.
fontSize yes Number 10 Pre-configured font size.
font yes String "Arial" Pre-configured font. Restricted to "Arial", "Calibri", and "Times New Roman".
color yes Number[] [55, 126, 184, 1] Pre-configured font color in RGBA.
opacity yes Number 1 Pre-configured font transparency in range [0..1].

Example

{
    "text": "",
    "fontSize": 10,
    "font": "Arial",
    "color": [55, 126, 184, 1],
    "opacity": 1
}

portalConfig.menu.sections.modules.draw.download🔗

Object to change the drawing tool's download preselected format. It should be one of "KML", "GEOJSON" and "GPX".

Name Required Type Default Description
preSelectedFormat no enum["KML","GEOJSON","GPX"] "KML" Pre-configured pre-selected form.

Example

{
    "preSelectedFormat": "KML"
}
portalConfig.menu.sections.modules.featureLister🔗

This module can display loaded vector data from WFS, GeoJSON and OAF layers in a table. All visible vector layers from the map are displayed in the first tab. The features to be displayed from WFS layers can be selected using a drawing tool after selecting the layer. The features of the layer are listed in the second tab of the table. The number of displayed features is configurable.

As soon as you position the mouse pointer over a feature in the list, it will be marked in the map. By clicking on a feature, its attributes are displayed in a third tab.

Name Required Type Default Description
highlightVectorRulesPointLine no highlightVectorRulesPointLine Specify outline color and stroke width for highlighting lines and fill color and scale factor for highlighting points as well as a zoom parameter.
highlightVectorRulesPolygon no highlightVectorRulesPolygon Specify the fill color and outline color and stroke width for highlighting the polygon features as well as a zoom parameter.
icon no String "bi-list" Icon that is shown in front of the module in the menu. For selection see Bootstrap Icons.
maxFeatures no Integer 20 Amount of features to display initially. More features of the same amount can be revealed by clicking a button.
name no String "common:modules.featureLister.name" Name of the module in the menu.
type yes String "featureLister" The type of the module. Defines which module is configured.
showGraphicalSelect no Boolean false Indicates whether it should be possible to select features by drawings (only for WFS).
bufferDistance no Number 100 The default distance for the buffer of the drawn line from the Graphical Select. Only relevant if showGraphicalSelect=true.

Example

"featureLister": {
    "name": "List",
    "icon": "bi-list",
    "maxFeatures": 10,
    "showGraphicalSelect": true,
    "bufferDistance": 500,
    "highlightVectorRulesPolygon": {
        "fill": {
            "color": [255, 0, 255, 0.9]
        },
        "stroke": {
            "width": 4,
            "color": [0, 0, 204, 0.9]
        },
        "zoomLevel": 5
    },
    "highlightVectorRulesPointLine": {
        "fill": {
            "color": [255, 0, 255, 0.9]
        },
        "stroke": {
            "width": 8,
            "color": [255, 0, 255, 0.9]
        },
        "image": {
            "scale": 2
        },
        "zoomLevel": 5
    }
}

portalConfig.menu.sections.modules.featureLister.highlightVectorRulesPointLine🔗

Specify outline color and stroke width for highlighting lines and fill color and scale factor for highlighting points. Also a zoom level can be configured.

Name Required Type Default Description
fill no Fill [255, 255, 255, 0.5] Possible setting: color
image no Image 1.5 Possible setting: scale
stroke no Stroke 1 Possible setting: width
zoomLevel no Integer 7 Zoom level, possible setting: 0-9

portalConfig.menu.sections.modules.featureLister.highlightVectorRulesPolygon🔗

Specify the fill color, the outline color and stroke width for highlighting the polygon features as well as a zoom level.

Name Required Type Default Description
fill no Fill [255, 255, 255, 0.5] Possible setting: color
stroke no Stroke 1 Possible setting: width
zoomLevel no Integer 7 Zoom level, possible setting: 0-9

portalConfig.menu.sections.modules.fileImport🔗

Import ".kml", ".geojson" and "*.gpx" files with this module.

Name Required Type Default Description
enableZoomToExtend no Boolean false To decide if the file name is shown as a button and it is able to zoom the imported features by clicking the file name
icon no String "bi-box-arrow-in-down" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.fileImport.name" Name of the module in the menu.
type no String "fileImport" The type of the module. Defines which module is configured.
customStylingOption no Boolean false To decide if a custom styling option for a GeoJson is offered.
showConfirmation no Boolean true To decide if a confirmation window is shown after a successful import.

Example

{
    "type": "fileImport",
    "enableZoomToExtend": true
}

portalConfig.menu.sections.modules.filter🔗

The filter tool offers a range of options to filter vector data from WFS, OAF, GeoJSON, SensorThingsAPI and VectorTiles services.

Name Required Type Default Description
geometrySelectorOptions no filterGeometrySelector[] false Options for an additional tool for filtering within a self-drawn area. If you use this tool in conjunction with external filtering (external: true), please remember to configure your layer filter with geometryName.
layerGroups no filterLayerGroups[] [] Configuration of the related layers to be filtered.
layers no filterLayer[] [] Configuration of layers to be filtered. Can be an array of plain layer ids also - if so the layer and all snippets are identified automatically.
liveZoomToFeatures no Boolean true Defines whether the filter immediately zooms to filter results.
minScale no Integer 5000 Minimum zoom level the filter zooms in when displaying filter results.
multiLayerSelector no Boolean true Controls whether all filters can be active or only one at same time.
name no String "common:modules.filter.name" Name of the module in the menu.
saveTo no String "void" If set to "url", the current filter setting is saved. The shareView module can be used to create a link containing the filter settings.
showCurrentlyActiveFilters no Boolean true Displays an area above all configured filters in which the currently active filters are shown. Here, you can also delete individual values or all filter settings that the user has made.
linkText no String "" Link text at the bottom containing a url link to the current filter setting, or empty string if no such link should be displayed. Requires "saveTo": "url"
type no String "filter" The type of the module. Defines which module is configured.
closeGfi no Boolean false If it is true and a gfi window is open, the gfi window could be closed after new filtering.
questionLink no String "" The URL for the tool information button (questionmark)
closeDropdownOnSelect no Boolean true Enable/disable closing dropdown list after selecting an option.
collapseButtons no Boolean false If collapseButtons is set to true, buttons are displayed instead of accordions.
clearAll no Boolean false After clicking button Reset all, all the features will be shown. Set to true to clear all the features after clicking Reselt all button.

Example

The following example uses only a layer id to generate the filter automatically.

{
    "type": "filter",
    "icon": "bi-funnel-fill",
    "closeDropdownOnSelect": true,
    "clearAll": false,
    "geometrySelectorOptions": {
        "visible": true
    },
    "closeGfi": false,
    "questionLink": "https://bitbucket.org/geowerkstatt-hamburg/addons/src/dev/cosi/manuals/005filter.md",
    "showCurrentlyActiveFilters": true,
    "layerGroups":
    [
        {
            "title": "GRUPPE 1",
            "layers": [
                {
                    "layerId": "47"
                }
            ]
        }
    ],
    "layers": [
        {
            "layerId": "8712"
        }
    ]
}

portalConfig.menu.sections.modules.filter.filterGeometrySelector🔗

An additional selection appears above the filter where a geometry can be selected and drawn on the map. The filter filters only in the selected area. If you use this modul in conjunction with external filtering (external: true), please remember to configure your layer filter with geometryName.

Name Required Type Default Description
additionalGeometries no Boolean false Geometries from a layer can additionally be added to the filter by the id. In that case, an attribute for the name of the geometry must also be specified. Currently only possible with WFS layer.
circleSides no Number 256 The geometry "Circle" is converted to a polygon for technical reasons. This is the number of polygon points of the resulting geometry.
defaultBuffer no Number 20 The geometry "LineString" is given a buffer (in meters) to make the LineString a "tube". This is the default distance from the center to the edge in meters.
fillColor no String "rgba(0, 0, 0, 0.33)" The fill color of the outer area (or geometry if invertGeometry = false).
geometries no String[] ["Polygon", "Rectangle", "Circle", "LineString"] The selectable geometries and their order.
invertGeometry no Boolean true true: The geometry is transparent, the outer area is displayed as a shadow. false: The fill specifications apply to the geometry itself.
strokeColor no String "rgba(0, 0, 0, 1)" The color of the border of the geometry.
strokeWidth no Number 1 The thickness of the border of the geometry.
visible yes Boolean true Activates the geometry selector.

Example

Example of the minimal configuration of the filterGeometrySelector.

{
    "visible": true
}

Example

Example of a complete configuration with the default settings of the filterGeometrySelector.

{
    "visible": true,
    "circleSides": 256,
    "defaultBuffer": 20,
    "geometries": ["Polygon", "Rectangle", "Circle", "LineString"],
    "invertGeometry": true,
    "fillColor": "rgba(0, 0, 0, 0.33)",
    "strokeColor": "rgba(0, 0, 0, 1)",
    "strokeWidth": 1,
    "additionalGeometries": [
        {
            "layerId": "1692",
            "attrNameForTitle": "bezirk_name"
        }
    ]
}

Example

Example of a completely changed configuration of the filterGeometrySelector.

{
    "visible": true,
    "circleSides": 32,
    "defaultBuffer": 60,
    "geometries": ["LineString", "Rectangle", "Circle", "Polygon"],
    "invertGeometry": false,
    "fillColor": "rgba(0, 0, 200, 0.1)",
    "strokeColor": "rgba(255, 0, 0, 1)",
    "strokeWidth": 2
}

portalConfig.menu.sections.modules.filter.filterLayer🔗

An object to define a layer to filter with.

Name Required Type Default Description
active no Boolean false Set to true to let the layer selector be initialy opened. If multiLayerSelector is set to false and more than one filter layer has set active to true, the last filter layer with active true is initialy opened.
clearAll no Boolean false After clicking button Reset all, all the features will be shown. Set to true to clear all the features after clicking Reselt all button.
collection no String ONLY VectorTiles: The collection to filter. If it is set, the layer needs a baseOAFUrl to start the api requests
description no String "" A description of the layer, displayed when the selector is opened. Can be a translation key also.
download no Boolean "" Enter true for a file here to activate the download of the data filtered on this layer. A download area will appear at the end of the filter. For VectorTiles, only CSV download works.
extern no Boolean false When set to true, filtering is done on the server side. Useful for big sets of data that can't be loaded into the browser at once. Remember to set the isNeverVisibleInTree flag of the layer to true to avoid loading of the whole data set by user click on its entry in the tree.
filterButtonDisabled no Boolean false Only for strategy passive: Disable the filter button while nothing is selected.
filterOnMove no Boolean If it is true, the layer will be filtered dynamically after the map moves. Only works with multiLayerSelector: false. With this combination the filter is triggerd when the accordeon will be opened.
filterOnOpen no Boolean If set to true, the filter is triggered when the accorden is clicked.
geometryName no String "" Only for extern true in connection with filtering within polygons: The geometry name of the features to be able to detect an intersection.
icon no String Icon to show in the accordion title. Can be any of Bootstrap Icons
labelFilterButton no String "common:modules.filter.filterButton" If strategy is set to passive only: The text of the filter button. Can be a translation key.
layerId no String The layer id of the layer to filter. Must be configured in the layerconfig.
maxZoom no Number The maximum zoom level for current filter, if current zoom level is bigger than the maximum zoom level, the current filter will be deactivated.
minZoom no Number The minimum zoom level for current filter, if current zoom level is smaller than the minimum zoom level, the current filter will be deactivated.
paging no Number 1000 The filter will load features into the map in chunks. Paging is the chunk size. If the chunk size is set too low, the filtering will be slowed down. Set the chunk size too high, the loading of the chunk will slow the filtering down. Try it out to find your fastes setup.
resetLayer no Boolean false If true it will change the reset button to a button which resets the whole layer and ignores the prechecked values. Will be ignored if clearAll is set to true. Furthermore, the parameter should not be configured in conjunction with a low paging number, otherwise the complete layer will be displayed on the map only very slowly and delayed when resetting.
searchInMapExtent no Boolean false Set to true to activate a generic checkbox, where you can set the filtering to only filter in current browser extent. If the extent checkbox is checked, automatic zooming is disabled. Make sure to set loadingStrategy to all to avoid weird effects when zooming out after filtering in extent. It should also be noted that with external:true the bbox is not sent with the snippet types date and dateRange.
searchInMapExtentInfo no Boolean true A little icon is shown right hand side of the checkbox. Clicking the icon, a standard description is shown. Set to false to disable this feature. Set to a individual text to use an own description or use a translation key.
searchInMapExtentPreselected no Boolean false The checkbox for filtering in the browser extent is initially selected if searchInMapExtentPreselected: true is set.
searchInMapExtentProactive no Boolean true The checkbox for filtering in the browser extent triggers direct filtering in the current browser extent under strategy: active. This can be disabled by setting searchInMapExtentProactive: false.
shortDescription no String "" The shorter version of the description, displayed under the selector title. Can be a translation key also.
showHits no Boolean true After filtering, the hits are displayed. Set to false to not show the hits.
snippets no Snippets[] [] Configuration of snippets to adjust the filtering. Can be a minimalistic array of attribute names. Can be left empty to use the automatic identification of all snippets possible.
strategy no String There are two filter strategies: passive - a filter button is used. And active - the filter will be triggered immediately by any choice made. Passive strategy is used by default.
title no String The title to use for the selector. Can be a translation key also. If not set, the layerId will be used by default.
wmsRefId no String/String[] "" If the layer is filtered, the WMS layer with wmsRefId will be invisible and deactivated from Tree. After resetting the layer, the WMS layer will be activated and visible again.

Example

In this example, one snippet is set with only an attrName. The snippet type is detected automatically. See the snippet datatype for the advanced configuration of snippets.

{
    "layerId": "8712",
    "title": "Schools",
    "strategy": "active",
    "searchInMapExtent": true,
    "searchInMapExtentInfo": true,
    "showHits": true,
    "clearAll": false,
    "wmsRefId": "21066",
    "shortDescription": "School master data and pupil numbers of Hamburg schools",
    "description": "School master data and pupil numbers of Hamburg schools",
    "paging": 100,
    "filterOnMove": false,
    "minZoom": 7,
    "maxZoom": 14,
    "snippets": [
        {
            "attrName": "rebbz_homepage"
        }
    ]
}

portalConfig.menu.sections.modules.filter.filterLayerGroups🔗

An object to define a group layer to filter with.

Name Required Type Default Description
layers no String [] Configuration of layers to be filtered. Can be an array of plain layer ids also - if so the layer and all snippets are identified automatically. The type of layers is filterLayer, but here it was defined as string to avoid repetitive definitions within layerGroups.
title yes String The title to use for the group layer. Can be a translation key also.
collapseButtons no Boolean false If collapseButtons is set to true, buttons are displayed instead of accordions.

Example

LayerGroups group related layers. Each group has a title and a list of layers. These are displayed together in the filter.

{
  "layerGroups": [
    {
      "title": "GROUP 1",
      "collapseButtons": true,
      "layers": [
        {
          "layerId": "47"
        },
        {
          "layerId": "7315"
        }
      ]
    },
    {
      "title": "GROUP 2",
      "layers": [
        {
          "layerId": "5105"
        }
      ]
    }
  ]
}

portalConfig.menu.sections.modules.language🔗

In this module the language of the portal can be switched.

Name Required Type Default Description
icon no String "bi-flag" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.language.name" Name of the module in the menu.
type no String "language" The type of the module. Defines which module is configured.

Example

{
    "icon": "bi-flag",
    "name": "common:modules.language.name",
    "type": "language"
}

portalConfig.menu.sections.modules.layerClusterToggler🔗

This module allows to activate/load and deactivate layers in clusters simultaneously.

Name Required Type Default Description
icon no String "bi-list" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
layerIdList yes String[] [] List of layerIds, the layers that should be switched on or off together.
name no String "common:modules.layerClusterToggler.name" Name of the module in the menu.
type no String "layerClusterToggler" The type of the module. Defines which module is configured.

Example

{
    "icon": "bi-list",
    "layerIdList": [
        "8712",,
        "8713.1",
        "8713.2",
        "8713.3"
    ],
    "name": "common:modules.layerClusterToggler.name",
    "type": "layerClusterToggler"
}

portalConfig.menu.sections.modules.layerSlider🔗

The layer slider module allows showing multiple layers in a row. This may e.g. be used to animate a time series of aerial imagery.

The slider can switch between two modes in the interface. Layer slider type. "player" shows start, pause, and stop buttons, while "handle" uses a switch. In the latter case, layer transparency is adjusted additionally.

Name Required Type Default Description
icon no String "bi-collection-play" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons
layerIds yes layerId[] [] Array of layer information objects.
name no String "common:modules.layerSlider.name" Name of the module in the menu.
timeInterval no Integer 2000 Time in ms until the next layer is shown.
title no String "common:modules.layerSlider.title" Name displayed in the module.
type no String "layerSlider" The type of the module. Defines which module is configured.

Example

"layerSlider": {
    "icon": "bi-hourglass-split",
    "layerIds": [
        {
            "title": "Dienst 1",
            "layerId": "123"
        },
        {
            "title": "Dienst 2",
            "layerId": "456"
        },
        {
            "title": "Dienst 3",
            "layerId": "789"
        }
    ],
    "name": "Time series",
    "timeInterval": 2000,
    "title": "Simulation of Example-WMS"
}

portalConfig.menu.sections.modules.layerSlider.layerId🔗

Defines a layer slider layer.

Name Required Type Default Description
layerId yes String ID of the service to be shown in the portal. This layer ID MUST be configured as part of the layerConfig!
title yes String Service name to be shown in the portal.

Example

{
    "layerId": "123",
    "title": "Dienst 1"
}

portalConfig.menu.sections.modules.legend🔗

Legend configuration options.

Name Required Type Default Description
icon no String "bi-lightbulb" Legend icon.
name yes String "common:modules.legend.name" Name of the module in the menu.
type no String "legend" The type of the module. Defines which module is configured.
sldVersion no String "" Defines the Styled Layer Descriptor Version for the GetLegendGraphic requests, e.g. "1.1.0"

portalConfig.menu.sections.modules.login🔗
Name Required Type Default Description
name yes String The name for the module in the menu. Overwritten when the user is logged in.
icon yes String The icon next to the login button in the menu. Will be changed when the user is logged in (see module store).
{
    "type": "login",
    "name": "common:modules.login.login",
    "icon": "bi-door-open"
}

portalConfig.menu.sections.modules.measure🔗

The measure tool allows measuring distances and areas.

Name Required Type Default Description
color no Number[] [255, 127, 0, 1.0] Defines the color for the measured lines and polygons.
earthRadius no Number 6378137 Earth radius in meters. Please mind that the earth radius should be chosen in accordance with the reference ellipsoid. E.g., GRS80 should be used for ETRS89 (EPSG:25832).
icon no String "bi-arrows-angle-expand" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
lineStringUnits no String[] ["m", "km"] Indicates which units for length measurements will be selectable by users. Options are "m" (metres), "km" (kilometres), "nm" (nautical miles).
measurementAccuracy no String "meter" Indicates how accurately the measurement result is displayed for "m", "nm", "m²", "ha". Options are "decimeter" for one decimal place. "meter" for no decimal place. "dynamic" for one decimal place for results smaller 10 and no decimal place for results greater or equal 10 of the respective unit.
name no String "common:modules.measure.name" Name of the module in the menu.
polygonUnits no String[] ["m²", "km²"] Indicates which units for area measurements will be selectable by users. Options are "m²", "ha", "km²".
type no String "measure" The type of the module. Defines which module is configured.

Example

{
    "earthRadius": 6378137,
    "icon": "bi-arrows-angle-expand",
    "measurementAccuracy": "dynamic",
    "name": "common:modules.measure.name",
    "type": "measure"
}

portalConfig.menu.sections.modules.modeler3D🔗

Can only be used in 3D mode! The 3D modeler allows to import 3D models in the formats .gltf, .dae and .obj, as well as to draw lines and extrudable 3D polygons. These drawings can be exported and loaded back georeferenced into the map.

Name Required Type Default Description
gmlIdPath no String "gmlid" Specify the path to the GML ID in the GFI for buildings in 3D Layers.
updateAllLayers no Boolean true Specify, if all layers should be updated, when buildings are hidden.
highlightStyle no highlightStyle Specify the fill color, alpha, outline color and outline width for highlighting entities.
allowedAttributes no String[] ["Wertbezeichnung", "Gebaeudefunktion"] Define which attributes should be available for the filtering function.
pvoColors no pvoColors Define the colors of the PlanzeichenVerordnung.
buildingSource no String "ALKIS" Define the source of buildings (currently only ALKIS supported)
buildingFunctionURL no String "https://repository.gdi-de.org/schemas/adv/citygml/Codelisten/BuildingFunctionTypeAdV.xml" Define the URL where the building types should be retrieved from.
type yes String "modeler3D" The type of the module. Defines which module is configured.

Example

{
    "type": "modeler3D",
    "gmlIdPath": "gmlId",
    "updateAllLayers": false,
    "highlightStyle": {
        "silhouetteColor": "#E20D0F",
        "silhouetteSize": 4
    },
    "allowedAttributes": ["Gebaeudefunktion", "Wertbezeichnung"],
        "pvoColors": {
            "housing": "#ff0000",
            "commercial": "#666666",
            "public": "#44ff44"
        },
        "buildingSource": "ALKIS",
        "buildingFunctionURL": "https://repository.gdi-de.org/schemas/adv/citygml/Codelisten/BuildingFunctionTypeAdV.xml"
}

portalConfig.menu.sections.modules.modeler3D.highlightStyle🔗
Name Required Type Default Description
silhouetteColor no String "#E20D0F" Specify the outline color for highlighting entities.
silhouetteSize no Number 1 Specify the outline width for highlighting entities.

Example

{
    "highlightStyle": {
        "silhouetteColor": "#E20D0F",
        "silhouetteSize": 4
    }
}

portalConfig.menu.sections.modules.modeler3D.pvoColors🔗
Name Required Type Default Description
housing no String "#ff0000" Define the pvo color of housing buildings.
commercial no String "#666666" Define the pvo color of commercial buildings.
public no String "#44ff44" Define the pvo color of public buildings.

Example

{
    "pvoColors": {
        "housing": "#ff0000",
        "commercial": "#666666",
        "public": "#44ff44"
    }
}

portalConfig.menu.sections.modules.news🔗

This module shows all messages from the newsFeedPortalAlerts.json and the config.json of the current portal regardless of the "read" status.

Name Required Type Default Description
icon no String "bi-newspaper" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.news.name" Name of the module in the menu.
type no String "news" The type of the module. Defines which module is configured.

Example

{
    "icon": "bi-newspaper",
    "name": "common:modules.news.name",
    "type": "news"
}

portalConfig.menu.sections.modules.openConfig🔗

With this module a configuration file (config.json) can be reloaded at runtime. The modules and map are adapted to the new configuration.

Name Required Type Default Description
icon no String "bi-upload" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.openConfig.name" Name of the module in the menu.
type no String "openConfig" The type of the module. Defines which module is configured.

Example

{
    "icon": "bi-upload",
    "name": "common:modules.openConfig.name",
    "type": "openConfig"
}

portalConfig.menu.sections.modules.print🔗

Print module, configurable for 2 print services: High Resolution PlotService and MapfishPrint 3.

This requires a backend!

The High Resolution Plot Service does not support map rotation! If the tool is configured to it, map rotation should be disabled.

A Mapfish-Print3, or HighResolutionPlotService is required as backend.

Name Required Type Default Description
additionalLayers no additionalLayers Defines layers that can be added to print.
capabilitiesFilter no capabilitiesFilter Filter for the response of the configured print service. Possible keys are layouts and outputFormats.
currentLayoutName no String "A4 Hochformat" Defines which layout is the default layout on opening the print tool, e.g. "A4 portrait format". If the given layout is not available oder none is provided, the first layout mentioned in the Capabilities is used.
defaultCapabilitiesFilter no capabilitiesFilter If there is no key set in capabilitiesFilter, the key from this object is taken.
dpiForPdf no Number 200 DPI resolution for the map in the PDF file.
filename no String "report" Print result file name.
icon no String "bi-printer" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
isLegendSelected no Boolean false Defines whether a checkbox to print the legend is offered. Only used for print services supporting legend printing (Mapfish Print 3).
name no String "common:modules.print.name" Name of the module in the menu.
overviewmapLayerId no String Allows using a different layer for the overview map element. If no Id is specified, the first layer of the selected baselayer maps is used.
printAppCapabilities no String "capabilities.json" path for the configuration of the print service
printAppId no String "master" Print service print app id. This tells the print service which template(s) to use.
printMapMarker no Boolean false If set to true, map markers visible in the print image section will be printed. They may obstruct the view to interesting information.
printService no String "mapfish" Flag determining which print service is in use. plotservice activates the High Resolution PlotService, if the parameter is not set, Mapfish 3 is used.
printServiceId yes String Print service id. Resolved using the rest-services.json file.
showInvisibleLayerInfo no Boolean true Defines whether an infobox is shown when layers will not be printed because they are invisible due to scale.
title no String "PrintResult" Document title appearing as header.
transferParameter no transferParameter {} Enables the transfer of any number of freely definable parameters. The layout design (JRXML) must then be customized by the user in a meaningful way.
type no String "print" The type of the module. Defines which module is configured.

High Resolution PlotService example configuration

"print": {
    "name": "common:modules.print.name",
    "icon": "bi-printer",
    "type": "print",
    "printServiceId": "123456",
    "filename": "Ausdruck",
    "title": "Mein Titel",
    "printService": "plotservice",
    "printAppCapabilities": "info.json",
    "layoutOrder": [
        "Default A4 hoch",
        "Default A4 quer",
        "Default A3 hoch",
        "Default A3 quer",
    ]
}

MapfishPrint3 example configuration

"print": {
    "name": "Karte drucken",
    "icon": "bi-printer",
    "type": "print",
    "printServiceId": "mapfish_printservice_id",
    "printAppId": "mrh",
    "filename": "Ausdruck",
    "title": "Mein Titel"
}

portalConfig.menu.sections.modules.print.transferParameter🔗

Object with parameters.

Name Required Type Default Description
exampleParameter1 no String "" Contains parameter
Example additionalLayers
"transferParameter": {
        "exampleParameter1": "example placeholder",
        "exampleParameter2": "example placeholder 2"
    }

portalConfig.menu.sections.modules.print.additionalLayers🔗

List of Layers that can be added to the print document.

Name Required Type Default Description
active no Boolean false Defines if the layer is active.
id yes String Service-ID of the layer.
label yes String Label of the checkbox in the print dialog.
Example additionalLayers
"additionalLayers": [{
  "id": "wms_coord_grid_25832",
  "label": "Coordinate Grid UTM32N - ETRS89"
}]

portalConfig.menu.sections.modules.print.capabilitiesFilter🔗

List of layouts and formats that filters the response from the print service in the respective category.

Name Required Type Default Description
layouts no String[] Array of layouts should shown in the UI.
outputFormats no String[] Array of formats should shown in the UI.

Example capabilitiesFilter:

"capabilitiesFilter": {
    "layouts": ["A4 Hochformat", "A3 Hochformat"],
    "outputFormats": ["PDF"]
}

portalConfig.menu.sections.modules.print.transferParameter🔗

Any number of parameters that can be passed to MapFish. exampleParameter is just an example. Any names can be chosen for the variables, and they can contain any values of type string.

Name Required Type Default Description
exampleParameter1 nein String Beispiel für einen String.
exampleParameter2 nein String Beispiel für einen String.

Beispiel transferParameter:

"transferParameter": {
        "exampleParameter1": "example placeholder",
        "exampleParameter2": "example placeholder 2"
    }


portalConfig.menu.sections.modules.compareFeatures🔗

This tool allows comparing vector features which are provided by WFS(❗) services.

Name Required Type Default Description
icon no String "bi-star" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.compareFeatures.name" Name of the module in the menu.
numberOfAttributesToShow no Integer 12 Deprecated in next major release. Maximum amount of attributes initially shown. If more attributes are available, they can be shown and hidden by clicking a button.
numberOfFeaturesToShow no Integer 3 Deprecated in next major release. Maximum amount of features selectable for comparison.
type no String "compareFeatures" The type of the module. Defines which module is configured.

Example

"compareFeatures": {
    "icon": "bi-star",
    "name": "common:modules.compareFeatures.title",
    "numberOfAttributesToShow": 10,
    "numberOfFeaturesToShow": 5,
    "type": "compareFeatures"
}

portalConfig.menu.sections.modules.routing🔗

Routing module. Enables user to plan routes between multiple points with multiple options to choose from. In addition users can create isochrones. Both functions are available with mass requests for specific use cases. ❗ This tool will use the routing service provided by the BKG ❗.

Name Required Type Default Description
activeRoutingToolOption no String "DIRECTIONS" Which routing tool should be open.
routingToolOptions no String[] [ ] Which routing tool should be enabled. ("DIRECTIONS", "ISOCHRONES")
download no download Downloadoptions
geosearch no geosearch Geosearchoptions
geosearchReverse no geosearchReverse Geosearchreverseoptions
directionsSettings no directionsSettings Directionsoptions
isochronesSettings no isochronesSettings Isochronesoptions
tsrSettings no tsrSettings Travelling Salesman Routing options

Example

{
    "type": "routing",
    "name": "common:modules.routing",
    "icon": "bi-signpost-2",
    "activeRoutingToolOption": "DIRECTIONS",
    "routingToolOptions": ["DIRECTIONS", "ISOCHRONES"],
    "download": {
        "filename": "",
        "format": "GEOJSON"
    },
    "geosearch": {
        "minChars": 3,
        "limit": 10,
        "type": "BKG",
        "serviceId": "bkg_geosearch"
    },
    "geosearchReverse": {
        "distance": 1000,
        "filter": "",
        "type": "BKG",
        "serviceId": "bkg_suggest"
    },
    "directionsSettings": {
        "type": "ORS",
        "serviceId": "bkg_ors",
        "speedProfile": "CAR",
        "preference": "RECOMMENDED",
        "styleRoute": {
            "fillColor": [255, 44, 0],
            "width": 6,
            "highlightColor": [255, 255, 255],
            "highlightWidth": 9,
            "partHighlightColor": [255, 255, 255],
            "partHighlightWidth": 3
        },
        "styleWaypoint": {
            "lineColor": [255, 127, 0],
            "lineWidth": 4,
            "fillColor": [255, 127, 0],
            "textFillColor": "#000",
            "textLineColor": "#fff",
            "textLineWidth": 3,
            "opacity": 0.3,
            "radius": 8
        },
        "styleAvoidAreas": {
            "lineColor": [0, 127, 255],
            "lineWidth": 2,
            "fillColor": [0, 127, 255],
            "opacity": 0.3,
            "pointRadius": 8,
            "pointLineWidth": 4
        },
        "batchProcessing": {
            "enabled": false,
            "active": false,
            "limit": 1000,
            "maximumConcurrentRequests": 3
        }
    },
    "isochronesSettings": {
        "type": "ORS",
        "serviceId": "bkg_ors",
        "speedProfile": "CAR",
        "isochronesMethodOption": "TIME",
        "distanceValue": 30,
        "minDistance": 1,
        "maxDistance": 400,
        "timeValue": 30,
        "minTime": 1,
        "maxTime": 180,
        "intervalValue": 15,
        "minInterval": 3,
        "maxInterval": 30,
        "styleCenter": {
            "lineColor": [255, 127, 0],
            "lineWidth": 4,
            "fillColor": [255, 127, 0],
            "opacity": 0.3,
            "radius": 8
        },
        "styleIsochrones": {
            "lineWidth": 2,
            "opacity": 0.65,
            "startColor": [66, 245, 78],
            "endColor": [245, 66, 66]
        },
        "batchProcessing": {
            "enabled": false,
            "active": false,
            "limit": 1000,
            "maximumConcurrentRequests": 3
        },
        "attributes": ["area", "total_pop"],
        "areaUnit": "km"
    },
    "tsrSettings": {
        "type": "TSR",
        "serviceId": "bkg_tsr",
        "speedProfile": "CAR",
        "elevation": true,
        "tsrPointLimit": 50,
        "styleRoute": {
        "fillColor": [50, 169, 232, 1.0]
        }
    }
}

portalConfig.menu.sections.modules.routing.download🔗

Routing-tool download options.

Name Required Type Default Description
fileName no String "" Default filename for the download.
format no enum["GEOJSON","KML","GPX"] "GEOJSON" Which format should be selected by default.

Example

{
    "download": {
        "filename": "",
        "format": "GEOJSON"
    }
}

portalConfig.menu.sections.modules.routing.geosearch🔗

Routing-tool geosearch options.

Name Required Type Default Description
minChars no Number 3 Minimum amount of characters before sending a request to an external service.
limit no Number 10 Maximale amount of characters for the search.
type yes enum["BKG","NOMINATIM","LOCATIONFINDER","KOMOOT","GAZETTEER","SPECIALWFS","ELASTIC"] "" Which type of the geosearch should be used.
serviceId yes String Which service should be used for the geosearch.
typeName no String Type name for the specialWfs geosearch query.
propertyNames no String[] Names of properties to be included in the specialWfs geosearch.
geometryNames no String Name of the geometry field for specialWfs geosearch.
bbox no Bbox BBOX value according to the speedProfile. Coordinate system depends on the epsg parameter. Geosearch service must support bbox string.
epsg no String 4326 Which EPSG code is used by the service (e.g. 4326, 25832).
searchField no String The path to the field to be searched for when using Elastic Search.
sortField no String The path to the field that specifies the sorting of the results in ascending order when using Elastic Search.

Example for BKG

{
    "geosearch": {
        "type": "BKG",
        "serviceId": "bkg_geosearch",
        "bbox": {"CYCLING": "9.6,53.40,10.4,53.84"}
    }
}
Example for SPECIALWFS

{
    "geosearch": {
        "minChars": 3,
        "limit": 10,
        "type": "SPECIALWFS",
        "serviceId": "specialWfs_geosearch",
        "typeName": "ms:strasse_nr",
        "propertyNames": [
            "ms:LABEL_TEXT"
            ],
        "geometryName": "ms:msGeometry"
    }
}
Example for ELASTIC

{
    "geosearch": {
        "minChars": 3,
        "limit": 10,
        "type": "ELASTIC",
        "serviceId": "elastic_geosearch",
        "epsg": "25832",
        "searchField": "properties.searchField",
        "sortField": "properties.HAUSNUMMER"
    }
}

portalConfig.menu.sections.modules.routing.geosearchReverse🔗

Routing-tool geosearch reverse options.

Name Required Type Default Description
distance no Number 1000 Search radius in meter for the external service.
filter no String Additional filter used in the query.
type yes enum["BKG","NOMINATIM","KOMOOT"] Which type of geosearch reverse should be used.
serviceId yes String Which service should be used for the geosearch reverse.

Example

{
    "geosearchReverse": {
        "distance": 1000,
        "filter": "",
        "type": "BKG",
        "serviceId": "bkg_suggest"
    }
}

portalConfig.menu.sections.modules.routing.directionsSettings🔗

Routing-tool directions options.

Name Required Type Default Description
type yes enum["ORS"] Which type of service should be used for the request.
serviceId yes String Which service should be used for the request.
speedProfile no String "CAR" Which speed profile should be selected by default.
preference no String "RECOMMENDED" Which type of directions should be used by default.
elevation no Boolean false Possibility to activate the elevation profile of the route.
customPreferences no CustomPreferences Possibility to define additional preferences for the different speed profiles (additionally to the BKG service) (requires own modified backend)
customAvoidFeatures no CustomAvoidFeatures Possibility to define own options for avoid traffic routes for the different speed profiles(additionally to the BKG service) (requires own modified backend)
styleRoute no StyleRoute Stylerouteoptions
styleWaypoint no StyleWaypoint Stylewaypointoptions
styleAvoidAreas no StyleAvoidAreas Styleavoidareasoptions
batchProcessing no BatchProcessing Batchprocessingoptions

Example

{
    "directionsSettings": {
        "type": "ORS",
        "serviceId": "bkg_ors",
        "speedProfile": "CAR",
        "preference": "RECOMMENDED",
        "elevation": true,
        "customPreferences": {
            "CYCLING": ["RECOMMENDED", "SHORTEST", "GREEN"]
        },
        "customAvoidFeatures": {
                "CYCLING": ["STEPS", "FERRIES", "UNPAVEDROADS"]
        },
        "styleRoute": {
            "fillColor": [255, 44, 0, 1],
            "width": 6,
            "highlightColor": [255, 255, 255, 1],
            "highlightWidth": 9,
            "partHighlightColor": [255, 255, 255, 1],
            "partHighlightWidth": 3
        },
        "styleWaypoint": {
            "lineColor": [255, 127, 0],
            "lineWidth": 4,
            "fillColor": [255, 127, 0],
            "textFillColor": "#000",
            "textLineColor": "#fff",
            "textLineWidth": 3,
            "opacity": 0.3,
            "radius": 8
        },
        "styleAvoidAreas": {
            "lineColor": [0, 127, 255],
            "lineWidth": 2,
            "fillColor": [0, 127, 255],
            "opacity": 0.3,
            "pointRadius": 8,
            "pointLineWidth": 4
        },
        "batchProcessing": {
            "enabled": false,
            "active": false,
            "limit": 1000,
            "maximumConcurrentRequests": 3
        }
    }
}

portalConfig.menu.sections.modules.routing.isochronesSettings🔗

Routing-tool isochrones options.

Name Required Type Default Description
type yes enum["ORS"] Which type of service should be used for the request.
serviceId yes String Which service should be used for the request.
speedProfile no String "CAR" Which speed profile should be selected by default.
isochronesMethodOption no String "TIME" Which method should be selected by default.
distanceValue no Number 30 Which distance value in km should be selected by default.
minDistance no Number 1 Which minimal distance value in km should be used.
maxDistance no Number 400 Which maximum distance value in km should be used.
timeValue no Number 30 Which time value in min should be selected by default.
minTime no Number 1 Which minimal time value in min should be used.
maxTime no Number 180 Which maximum time in min should be used.
intervalOption no enum["default","count"] "default" Which interval mode should be used.
intervalValue no Number 15 Which interval value in km/min should be used by default.
minInterval no Number 1 Which minimal interval value in km/min should be used.
maxInterval no Number 30 Which maximum interval value in km/min should be used.
styleCenter no StyleCenter Stylecenteroptions
styleIsochrones no StyleIsochrones Styleisochronesoptions
batchProcessing no BatchProcessing Batchprocessingoptions
attributes no String[] [] Which additional attributes should be considered in request.
areaUnit no enum["m","km","mi"] "km" Which unit is used for area attribute.

Example

{
    "isochronesSettings": {
        "type": "ORS",
        "serviceId": "bkg_ors",
        "speedProfile": "CAR",
        "isochronesMethodOption": "TIME",
        "distanceValue": 30,
        "minDistance": 1,
        "maxDistance": 400,
        "timeValue": 30,
        "minTime": 1,
        "maxTime": 180,
        "intervalOption": "default",
        "intervalValue": 15,
        "minInterval": 3,
        "maxInterval": 30,
        "styleCenter": {
            "lineColor": [255, 127, 0],
            "lineWidth": 4,
            "fillColor": [255, 127, 0],
            "opacity": 0.3,
            "radius": 8
        },
        "styleIsochrones": {
            "lineWidth": 2,
            "opacity": 0.65,
            "startColor": [66, 245, 78],
            "endColor": [245, 66, 66]
        },
        "batchProcessing": {
            "enabled": false,
            "active": false,
            "limit": 1000,
            "maximumConcurrentRequests": 3
        },
        "attributes": ["area", "total_pop"],
        "areaUnit": "km"
    }
}

portalConfig.menu.sections.modules.routing.tsrSettings🔗

TSR-tool options.

Name Required Type Default Description
type yes enum["TSR"] Which type of service should be used for the request.
serviceId yes String Which service should be used for the request.
speedProfile no String "CAR" Which speed profile should be selected by default.
elevation no Boolean false Possibility to activate the elevation profile of the route.
tsrPointLimit no Number 50 Limit of TSR points
styleRoute no StyleRoute Stylerouteoptions

Example

{
    "tsrSettings": {
        "type": "TSR",
        "serviceId": "bkg_tsr",
        "speedProfile": "CAR",
        "elevation": true,
        "tsrPointLimit": 50,
        "styleRoute": {
            "fillColor": [50, 169, 232, 1.0]
        }
    }
}

portalConfig.menu.sections.modules.scaleSwitcher🔗

Module that allows changing the map's current scale.

Name Required Type Default Description
icon no String "bi-arrows-angle-contract" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.scaleSwitcher.name" Name of the module in the menu.
type no String "scaleSwitcher" The type of the module. Defines which module is configured.

Example

{
    "icon": "bi-arrows-angle-contract",
    "name": "common:modules.scaleSwitcher.name",
    "type": "scaleSwitcher"
}

portalConfig.menu.sections.modules.selectFeatures🔗

Allows selecting a set of vector features by letting the user draw a box on the map. Features in that box will be displayed with GFI information and it's possible to zoom to a feature. This tool requires WFS(❗) layers.

Name Required Type Default Description
highlightVectorRulesPointLine no highlightVectorRulesPointLine Specify outline color and stroke width for highlighting lines and fill color and scale factor for highlighting points as well as a zoom parameter.
highlightVectorRulesPolygon no highlightVectorRulesPolygon Specify the fill color and outline color and stroke width for highlighting the polygon features as well as a zoom parameter.
icon no String "bi-hand-index" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.selectFeatures.name" Name of the module in the menu.
type no String "selectFeatures" The type of the module. Defines which module is configured.

Example

{
    "type": "selectFeatures",
    "highlightVectorRulesPolygon": {
        "fill": {
            "color": [255, 0, 255, 0.9]
        },
        "stroke": {
            "width": 4,
            "color": [0, 0, 204, 0.9]
        },
        "zoomLevel": 5
    },
    "highlightVectorRulesPointLine": {
        "fill": {
            "color": [255, 0, 255, 0.9]
        },
        "stroke": {
            "width": 8,
            "color": [255, 0, 255, 0.9]
        },
        "image": {
            "scale": 2
        },
        "zoomLevel": 5
    }
}

portalConfig.menu.sections.modules.selectFeatures.highlightVectorRulesPointLine🔗

Specify outline color and stroke width for highlighting lines and fill color and scale factor for highlighting points. Also a zoom level.

Name Required Type Default Description
fill no Fill [255, 255, 255, 0.5] Possible setting: color
stroke no Stroke 1.5 Possible setting: width and color
image no Image 1 Possible setting: scale
zoomLevel no Integer 7 Zoom level, possible setting: 0-9

portalConfig.menu.sections.modules.selectFeatures.highlightVectorRulesPolygon🔗

Specify the fill color and stroke width for highlighting the polygon features as well as a zoom level.

Name Required Type Default Description
fill no Fill [255, 255, 255, 0.5] Possible setting: color
stroke no Stroke 1 Possible setting: width
zoomLevel no Integer 7 Zoom level, possible setting: 0-9

portalConfig.menu.sections.modules.shadow🔗

The shadow tool provides a UI element to define a point in time by using sliders and date pickers. The chosen time allows rendering the shadows of all 3D objects in 3D mode by simulating the sun's position. By pulling the sliders or selecting a different date, a new sun position is calculated immediately. By default, the tool starts with the current time, which can be overwritten in the parameters.

Name Required Type Default Description
icon no String "bi-lamp-fill" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
isShadowEnabled no Boolean false Default shadow value. true immediately renders shadows, false requires a manual confirmation.
name no String "common:modules.shadow.name" Name of the module in the menu.
shadowTime no shadowTime Default time the mdoule is started with. Recognizes "month", "day", "hour", and "minute".
type no String "shadow" The type of the module. Defines which module is configured.

Example

{
    "isShadowEnabled": true,
    "shadowTime": {
        "month": "6",
        "day": "20",
        "hour": "13",
        "minute": "0"
    },
    "type": "shadow"
}

portalConfig.menu.sections.modules.shadow.shadowTime🔗
Name Required Type Default Description
month no String month
day no String day
hour no String hour
minute no String minute

Example

{
    "month": "6",
    "day": "20",
    "hour": "13",
    "minute": "0"
}

portalConfig.menu.sections.modules.statisticDashboard🔗
Name Required Type Default Description
name yes String "common:menu.statisticDashboard" The Name of the Tool.
subtitle no String "common:modules.statisticDashboard.headings.mrhstatistics" The subtitle to display
icon no String "bi-speedometer" The icon of the Tool
colorScheme yes colorScheme "" Defines the colours of the features in statisticdashboard.
active no Boolean false If true, the tool is open after initializing the portal.
data yes data "" data for statistic dashboard.
classificationMode no String "quantiles" Method for dividing values into classes: "quantiles", "equalIntervals" or "benutzerdefiniert"
decimalPlaces no Number 2 Number of decimal places for statistical values.
allowPositiveNegativeMix no Boolean false If classification method is allowed to create classes like "from -1 to 1".
minNumberOfClasses no Number 2 Minimum selectable number of classes for choropleth map and legend. At least 2.
maxNumberOfClasses no Number 5 Maximum selectable number of classes for choropleth map and legend. At least 3.
numberOfClasses no Number 5 Current selected number of classes.
selectableColorPalettes no selectableColorPalettes [] Available options for color palettes
downloadFilename no String "Statistic Dashboard Download" The filename of the exported csv file.

Example

{
    "name": "common:menu.statisticDashboard",
    "subtitle": "common:modules.statisticDashboard.headings.mrhstatistics",
    "icon": "bi-speedometer",
    "downloadFilename": "Downloaded_Data",
    "colorScheme": {
        "referenceRegion": [155, 155, 155, 0.7],
        "lineCharts": [[74, 0, 30, 1], [117, 18, 50, 1], [189, 47, 83, 1], [198, 81, 84, 1], [228, 121, 97, 1], [240, 168, 130, 1], [250, 212, 172, 1], [157, 185, 171, 1], [137, 192, 196, 1], [87, 158, 185, 1],
            [57, 122, 168, 1], [28, 87, 150, 1], [22, 55, 113, 1], [16, 25, 77, 1], [118, 199, 190, 1], [62, 168, 166, 1], [32, 130, 136, 1], [0, 73, 75, 1], [224, 110, 133, 1], [204, 65, 90, 1]]
    },
    "active": true,
    "data": {
        "layerId": "28992",
        "geometryAttribute": "geom",
        "chartDirectionValue": 10,
        "timeStepsFilter": {
            "5": "Die letzten 5 Jahre",
            "10": "Die letzten 10 Jahre",
            "all": "Alle Jahre"
        },
        "mappingFilter": {
            "timeAttribute": {
                "attrName": "zeitpunkt",
                "name": "Zeitpunkt",
                "inputFormat": "YYYY-MM-DD",
                "outputFormat": "YYYY"
            },
            "regionNameAttribute": {
                "attrName": "statistisches_gebiet",
                "name": "Statistisches Gebiet"
            },
            "statisticsAttributes": {
                "arbeitnehmer_inland_tausend": {
                    "name": "Arbeitnehmer (Inland) in 1.000",
                    "category": "Beschäftigte"
                },
                "arbeitslose_jahresdurchschnitt": {
                    "name": "Arbeitslose",
                    "category": "Beschäftigte"
                },
                "arbeitslose_15_bis_u25_jahresdurchschnitt": {
                    "name": "Arbeitslose 15 bis unter 25 Jahre",
                    "category": "Beschäftigte"
                },
                "einwohner_ab_65": {
                    "name": "Einwohner 65 Jahre und älter",
                    "category": "Bevölkerung"
                },
                "einwohner_ab_65_prozent_aller_einwohner": {
                    "name": "Einwohner 65 Jahre und älter in % aller Einwohner",
                    "category": "Bevölkerung"
                },
                "einwohner_auslaender": {
                    "name": "Einwohner Ausländer",
                    "category": "Bevölkerung"
                }
            }
        }
    }
}

portalConfig.menu.sections.modules.statisticDashboard.colorScheme🔗
Name Required Type Default Description
referenceRegion yes Float[] [] The RGBA color of the Reference region.
lineCharts yes Float[] [] The list of the RGBA colors of the linecharts.

Example

{
        "referenceRegion": [155, 155, 155, 0.7],
        "lineCharts": [[74, 0, 30, 1], [117, 18, 50, 1], [189, 47, 83, 1], [198, 81, 84, 1], [228, 121, 97, 1], [240, 168, 130, 1], [250, 212, 172, 1], [157, 185, 171, 1], [137, 192, 196, 1], [87, 158, 185, 1],
            [57, 122, 168, 1], [28, 87, 150, 1], [22, 55, 113, 1], [16, 25, 77, 1], [118, 199, 190, 1], [62, 168, 166, 1], [32, 130, 136, 1], [0, 73, 75, 1], [224, 110, 133, 1], [204, 65, 90, 1]]
}

portalConfig.menu.sections.modules.statisticDashboard.selectableColorPalettes🔗
Name Required Type Default Description
label yes String The displayed name of the color palette.
baseColor yes Number[] The base color as an rgb array

Example

[
        {
            "label": "Blau",
            "key": "Blues"
        }
]

portalConfig.menu.sections.modules.statisticDashboard.data🔗
Name Required Type Default Description
layerId yes String "" The id of the Layer.
oafRequestCRS no String "" Only for OAF Service - The coordinate reference system of the response geometries. I.e.: 'http://www.opengis.net/def/crs/EPSG/0/25832'
oafDataProjectionCode no String "" Only for OAF Service - The projection code of the data. Is needed to render the features on the map. I.e.: 'EPSG:25832'
geometryAttribute yes String "" Type of the geometry attribute.
chartDirectionValue no String "" Specifies the number above which the bars in the chart will be switched from vertical to horizontal.
timeStepsFilter yes timeStepsFilter "" An object consisting of keys and values where the key contains the number of time groupings and the value contains the description for the grouping.
mappingFilter yes mappingFilter "" This object contains attributes used to filter the map by its values.

Example

{
    "layerId": "28992",
    "oafRequestCRS": "http://www.opengis.net/def/crs/EPSG/0/25832",
    "oafDataProjectionCode": "EPSG:25832",
    "geometryAttribute": "geom",
    "chartDirectionValue": 10,
    "timeStepsFilter": {
        "5": "Die letzten 5 Jahre",
        "10": "Die letzten 10 Jahre",
        "all": "Alle Jahre"
    },
    "mappingFilter": {
        "timeAttribute": {
            "attrName": "zeitpunkt",
            "name": "Zeitpunkt",
            "inputFormat": "YYYY-MM-DD",
            "outputFormat": "YYYY"
        },
        "regionNameAttribute": {
            "attrName": "statistisches_gebiet",
            "name": "Statistisches Gebiet"
        },
        "statisticsAttributes": {
            "arbeitnehmer_inland_tausend": {
                "name": "Arbeitnehmer (Inland) in 1.000",
                "category": "Beschäftigte"
            },
            "arbeitslose_jahresdurchschnitt": {
                "name": "Arbeitslose",
                "category": "Beschäftigte"
            },
            "arbeitslose_15_bis_u25_jahresdurchschnitt": {
                "name": "Arbeitslose 15 bis unter 25 Jahre",
                "category": "Beschäftigte"
            },
            "einwohner_ab_65": {
                "name": "Einwohner 65 Jahre und älter",
                "category": "Bevölkerung"
            },
            "einwohner_ab_65_prozent_aller_einwohner": {
                "name": "Einwohner 65 Jahre und älter in % aller Einwohner",
                "category": "Bevölkerung"
            },
            "einwohner_auslaender": {
                "name": "Einwohner Ausländer",
                "category": "Bevölkerung"
            }
        }
    }
}

portalConfig.menu.sections.modules.statisticDashboard.data.timeStepsFilter🔗
Name Required Type Default Description
key:value ja String "" Key: The key is the number of the last "key" entry for dropdown options. Value: The description for the grouping.
all:value ja String "" Key: The keyword for selecting all entries for dropdown options. Value: The description for the grouping.

Example

{
    "5": "Die letzten 5 Jahre",
    "10": "Die letzten 10 Jahre",
    "all": "Alle Jahre"
}

portalConfig.menu.sections.modules.statisticDashboard.data.mappingFilter🔗
Name Required Type Default Description
timeAttribute yes timeAttribute "" The attribute for the time filter.
regionNameAttribute yes regionNameAttribute "" The attribute for the name of the region.
statisticsAttributes yes statisticsAttributes "" Attributes used to filter the map by its values.

Example

{
    "timeAttribute": {
        "attrName": "zeitpunkt",
        "name": "Zeitpunkt",
        "inputFormat": "YYYY-MM-DD",
        "outputFormat": "YYYY"
    },
    "regionNameAttribute": {
        "attrName": "statistisches_gebiet",
        "name": "Statistisches Gebiet"
    },
    "statisticsAttributes": {
        "arbeitnehmer_inland_tausend": {
            "name": "Arbeitnehmer (Inland) in 1.000",
            "category": "Beschäftigte"
        },
        "arbeitslose_jahresdurchschnitt": {
            "name": "Arbeitslose",
            "category": "Beschäftigte"
        },
        "arbeitslose_15_bis_u25_jahresdurchschnitt": {
            "name": "Arbeitslose 15 bis unter 25 Jahre",
            "category": "Beschäftigte"
        },
        "einwohner_ab_65": {
            "name": "Einwohner 65 Jahre und älter",
            "category": "Bevölkerung"
        },
        "einwohner_ab_65_prozent_aller_einwohner": {
            "name": "Einwohner 65 Jahre und älter in % aller Einwohner",
            "category": "Bevölkerung"
        },
        "einwohner_auslaender": {
            "name": "Einwohner Ausländer",
            "category": "Bevölkerung"
        }
    }
}

portalConfig.menu.sections.modules.statisticDashboard.data.mappingFilter.timeAttribute🔗
Name Required Type Default Description
attrName yes String "" The attribute for the time filters.
name no String "" The name of the attribute.
inputFormat no String "" Input Format
outputFormat no String "" Output Format

Example

{
    "attrName": "zeitpunkt",
    "name": "Zeitpunkt",
    "inputFormat": "YYYY-MM-DD",
    "outputFormat": "YYYY"
}

portalConfig.menu.sections.modules.statisticDashboard.data.mappingFilter.regionNameAttribute🔗
Name Required Type Default Description
attrName yes String "" The attribute of the region.
name no String "" The name of the region attribute.

Example

{
    "attrName": "statistisches_gebiet",
    "name": "Kreis"
}

portalConfig.menu.sections.modules.statisticDashboard.data.mappingFilter.statisticsAttributes🔗
Name Required Type Default Description
key yes String "" The key of the Statistic attributes.
name yes String "" The name of the statisticsAttributes.
Category yes String "" The category of the statisticsAttributes. If the category is set, it will be grouped under this category in the category selection.

Example

{
    "arbeitnehmer_inland_tausend": {
        "name": "Arbeitnehmer (Inland) in 1.000",
        "category": "Beschäftigte"
    },
    "arbeitslose_jahresdurchschnitt": {
        "name": "Arbeitslose",
        "category": "Beschäftigte"
    },
    "arbeitslose_15_bis_u25_jahresdurchschnitt": {
        "name": "Arbeitslose 15 bis unter 25 Jahre",
        "category": "Beschäftigte"
    }
}

portalConfig.menu.sections.modules.shareView🔗

Module to share a link to the current map view. It is possible to share the current view as a link with url parameters, via QR code and as a Facebook link.

Name Required Type Default Description
copyShare nein Boolean true Shows if the button to copy the link should be in the module.
facebookShare nein Boolean false Shows if the button to share a link via facebook should be in the module.
icon no String "bi-share" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.shareView.name" Name of the module in the menu.
type no String "shareView" The type of the module. Defines which module is configured.
qrShare nein Boolean false Shows if the button to create a qr code should be in the module.

Example

{
    "icon": "bi-share",
    "name": "common:modules.shareView.name",
    "type": "shareView",
    "facebookShare": true,
    "qrShare": true
}

portalConfig.menu.sections.modules.styleVT🔗

The module allows for switching the style of vector tile layers(❗) which provides multiple stylings defined in the services.json file.

Name Required Type Default Description
icon no String "bi-paint-bucket" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
name no String "common:modules.styleVT.name" Name of the module in the menu.
type no String "styleVT" The type of the module. Defines which module is configured.

Example

{
    "icon": "bi-paint-bucket",
    "name": "common:modules.styleVT.name",
    "type": "styleVT"
}

portalConfig.menu.sections.modules.wfsSearch🔗

Allows to query a WFS(❗) layer decoupled from the search bar using filters and to create a form if necessary. It is assumed that a stored query is used when using a WFS@2.0.0. When using a WFS@1.1.0, it is assumed that the way the WFS should be filtered is defined through the configuration.

Multiple SearchInstances can be defined, which will be selectable through a dropdown menu.

Name Required Type Default Description
instances yes searchInstance[] Array of searchInstances. A singular searchInstance corresponds to its own search form.
zoomLevel no Number 5 Specifies to which zoom level zooming is to be performed. If the feature does not fit into the zoom level, a suitable zoom level is automatically selected.
resultsPerPage no Number 0 The search result list will at most show this amount of results at a time. Further results will be offered on separate result pages. 0 means display all on one page at the same time.
multiSelect no Boolean false If true, a user may select multiple features from the result list by either pressing Strg/Shift or using checkboxes; when zooming, all selected features will be shown.

Example

{
    {
        "type": "wfsSearch",
        "instances": [
            {
                "requestConfig": {
                    "layerId": "1234"
                },
                "selectSource": "https://geoportal-hamburg.de/lgv-config/gemarkungen_hh.json",
                "literals": [
                    {
                        "clause": {
                            "type": "and",
                            "literals": [
                                {
                                    "field": {
                                        "queryType": "equal",
                                        "fieldName": "gemarkung",
                                        "inputLabel": "District",
                                        "options": ""
                                    }
                                },
                                {
                                    "field": {
                                        "queryType": "equal",
                                        "fieldName": "flur",
                                        "inputLabel": "Cadastral District",
                                        "options": "flur"
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        ]
    }
}

portalConfig.menu.sections.modules.wfsSearch.searchInstance🔗

A singular instance of the WFS Search which is selectable through a dropdown.

Name Required Type Default Description
literals yes Literal[] Array of literals.
requestConfig yes RequestConfig An object, which mainly contains the id of the service (layerId or restLayerId) that is supposed to be requested. If a WFS@2.0.0 will be used, the storedQueryId needs to be provided as well. Additionally, further options for requests can be set.
selectSource no String Optional Url leading to the expected options for the different inputs. See [https://geoportal-hamburg.de/lgv-config/gemarkungen_hh.json] for an example.
suggestions no Suggestions If given, the service will be queried whenever a user inserts values into an input field to suggest a value.
title yes String Title of the search instance to be displayed in a dropdown inside the tool.
userHelp no String Information text regarding the search form to be displayed to the user. If not given, it will be generated from the structure of the config. May be a translation key. If the value is explicitly set to hide, no information regarding the structure of the form will be displayed.
resultDialogTitle no String Heading of the result list. If not configured the name WFS search will be displayed. May be a translation key.
resultList no ResultList Settings for the output of the found features in the result list. If no resultList is configured, the search will zoom directly to the first feature found. Otherwise, clicking on a column in the search results will zoom to the feature.
zoomButtonInColumn no Boolean If configured, a zoom button will be displayed in the column geometry or geom. The specified field must be present in the feature.

Example

{
    "requestConfig": {
        "layerId": "1234"
    },
    "resultList": {
        "schulname": "School name",
        "abschluss": "Degree",
        "geometry": "Zoom"
    },
    "zoomButtonInColumn": true,
    "selectSource": "https://geoportal-hamburg.de/lgv-config/gemarkungen_hh.json",
    "title": "Parcel Search",
    "literals": [
        {
            "clause": {
                "type": "and",
                "literals": [
                    {
                        "field": {
                            "queryType": "equal",
                            "fieldName": "gemarkung",
                            "inputLabel": "District",
                            "options": ""
                        }
                    },
                    {
                        "field": {
                            "queryType": "equal",
                            "fieldName": "flur",
                            "inputLabel": "Cadastral District",
                            "options": "flur"
                        }
                    }
                ]
            }
        }
    ]
}

portalConfig.menu.sections.modules.wfst🔗

WFS-T module to visualize (getFeature), create (insert), update (update) and delete (delete) features of a Web Feature Service (WFS) which is able to receive transactions. To use this tool, a WFS-T layer must be provided in version 1.1.0. For more configuration information see services.json.

When editing properties of a feature / adding properties to a new feature, the available values including its label are based on the layers configured gfiAttributes. For more information see services.json.

Name Required Type Default Description
delete no TransactionConfig/Boolean false Defines which layers of layerIds allow delete transactions.
icon no String "bi-globe" Icon that is shown in front of the module-name in the menu. For selection see Bootstrap Icons.
layerIds yes String[] Array of layer-ids defined in services.json.
layerSelectLabel no String "common:modules.wfst.layerSelectLabel" Please set the value directly in the language files. If given, overrides the value set for the label of the layer select box. May be a locale key.
lineButton no TransactionConfig[]/Boolean [] Defines which layers of layerIds allow insert transactions of line geometries.
name no String "common:modules.wfst.name" Tool name shown in the portal.
pointButton no TransactionConfig[]/Boolean [] Defines which layers of layerIds allow insert transactions of point geometries.
polygonButton no TransactionConfig[]/Boolean [] Defines which layers of layerIds allow insert transactions of polygon geometries.
showConfirmModal no Boolean false Flag if the modal dialog should be shown.
toggleLayer no Boolean false Whether the features of the currently selected layer should stay visible when adding a new feature.
type no String "wfst" The type of the module. Defines which module is configured.
update no TransactionConfig/Boolean false Defines which layers of layerIds allow update transactions.
multiUpdate no multiUpdate[] [] Defines which layers allow multiple features to be updated at once.

Example

{
    "type": "wfst",
    "name": "common:modules.wfst.name",
    "icon": "bi-globe",
    "layerIds": ["1234", "5678", "4389"],
    "toggleLayer": true,
    "pointButton": [
        {
            "layerId":"1234",
            "caption": "Point test",
            "available": true
        },
        {
            "layerId": "5678",
            "available": true,
            "multi": true
        }
    ],
    "lineButton": false,
    "polygonButton": [
        {
            "layerId": "4389",
            "available": false
        }
    ],
    "update": [
        {
            "layerId": "4389",
            "available": true
        }
    ],
    "multiUpdate": [
        {
            "layerId": "4389",
            "available": true,
            "configAttributes": ["name", "description"],
            "controlAttributes": ["gemeinde"],
            "warningText": "common:modules.wfst.multiUpdate.warningText",
            "selectTypes": ["pen"],
            "selectIcons":
                {
                    "pen": "bi-pencil-fill",
                    "box": "fa-vector-square",
                    "select": "fa-mouse-pointer"
                }
        }
    ]
}

portalConfig.menu.sections.modules.wfst.multiUpdate🔗

Defines the configuration for updating multiple features at once.

Name Required Type Default Description
layerId yes String The ID of the layer from services.json for which the multiupdate function is configured.
available no Boolean false A flag to determine if the function is available for this layer.
configAttributes no String[] [] An array of attribute names whose values are only to be displayed and not editable in the multiupdate form.
controlAttributes no String[] [] An array of attribute names whose values are to be used for controlling the multiupdate process and can be editable.
warningText no String An optional text that is displayed as a warning when selecting features.
selectTypes no String[] ["pen"] Defines which tools are available for selecting features.
selectIcons no selectIcons {} An object that defines the icons for the selection tools specified in selectTypes.

Example

"multiUpdate": [
    {
        "layerId": "4389",
        "available": true,
        "configAttributes": ["name", "description"],
        "controlAttributes": ["gemeinde"],
        "warningText": "common:modules.wfst.multiUpdate.warningText",
        "selectTypes": ["pen"],
        "selectIcons": {
            "pen": "bi-pencil-fill",
            "box": "fa-vector-square",
            "select": "fa-mouse-pointer"
        }
    }
]

portalConfig.menu.sections.modules.wfst.multiUpdate.selectIcons🔗

Defines the mapping of selection tools to their corresponding icons.

Name Required Type Default Description
pen no String "bi-pencil-fill" The icon name used for the pen selection tool.
box no String "fa-vector-square" The icon name used for the box selection tool.
select no String "fa-mouse-pointer" The icon name used for the click.

Example

"selectIcons": {
        "pen": "bi-pencil-fill",
        "box": "fa-vector-square",
        "select": "fa-mouse-pointer"
}

portalConfig.menu.sections.modules.wfst.TransactionConfig🔗

Specific configuration for transaction methods of given layers.

Name Required Type Default Description
available yes Boolean true Availability of the transaction method for the layer with the given id.
icon no String Bootstrap icon displayed inside the button. If no value is specified, it defaults to the default value configured for the transaction method. For selection see Bootstrap Icons.
layerId yes String Layer the transaction method is being configured for.
multi no Boolean false Whether the drawn geometries of this layer should be Multi-X. This parameter does not have any use for update and delete.
text no String "common:modules.wfst.interactionSelect.*" Button text. If no value is given, * will be replaced with a standard value depending on the configured button. May be a locale key.

Examples

{
    "layerId": "1234",
    "available": true,
    "text": "Point test"
}
{
    "layerId": "5678",
    "available": true
}
{
    "layerId": "5489",
    "multi": true
}

portalConfig.menu.title🔗

The menu bar allows showing a portal name and portal image.

Name Required Type Default Description
link no String URL of an external website to link to.
logo no String Path to an external image file. If no image is set, the title will be shown without an accompanying logo.
text no String Portal name, if not set only the logo will be shown with 80% width.
toolTip no String Shown on hovering the portal logo.

Example portalTitle

"title": {
    "text": "Master",
    "logo": "https://geodienste.hamburg.de/lgv-config/img/hh-logo.png",
    "link": "https://geoinfo.hamburg.de",
    "toolTip": "Landesbetrieb Geoinformation und Vermessung"
}

portalConfig.portalFooter🔗

Possibility to configure the content of the portal footer.

Name Required Type Default Description
configPaths no String[] ["portalConfig.portalFooter"] Path array of possible config locations. First one found will be used.
scaleLine no Boolean true Shows if Scale should be shown in footer.
scaleLineWidth no Number 2 Width of the scale line in cm.
seperator no String "\|" The seperator between urls.
urls no urls[] [] Urls, that should be displayed in the footer.

Example

"portalFooter": {
    "urls": [
    {
        "bezeichnung": "common:modules.portalFooter.designation",
        "url": "https://geoinfo.hamburg.de/",
        "alias": "Landesbetrieb Geoinformation und Vermessung",
        "alias_mobile": "LGV Hamburg"
    },
    {
        "url": "mailto:LGVGeoPortal-Hilfe@gv.hamburg.de?subject=Kartenunstimmigkeiten%20melden&body=Zur%20weiteren%20Bearbeitung%20bitten%20wir%20Sie%20die%20nachstehenden%20Angaben%20zu%20machen.%20Bei%20Bedarf%20fügen%20Sie%20bitte%20noch%20einen%20Screenshot%20hinzu.%20Vielen%20Dank!%0A%0A1.%20Name:%0A2.%20Telefon:%0A3.%20Anliegen",
        "alias": "common:modules.portalFooter.mapDiscrepancy"
    }
    ],
    "scaleLine": true
}

portalConfig.portalFooter.urls🔗

A Url can be defined in various ways.

Name Required Type Default Description
alias yes String Displayed name of the link in desktop-view.
alias_mobile no String Displayed name of the link in mobile-view. If this is not specified, the link will not be displayed in mobile-view.
bezeichnung no String Displayed description next to the link.
url yes String The Url for the link.

Example

{
    "bezeichnung": "common:modules.portalFooter.designation",
    "url": "https://geoinfo.hamburg.de/",
    "alias": "Landesbetrieb Geoinformation und Vermessung",
    "alias_mobile": "LGV Hamburg"
}

portalConfig.tree🔗

Possibility to make settings for the topic selection tree. The layers are rendered in reverse configuration order.

Name Required Type Default Description
addLayerButton no addLayerButton false If active:true, a button for adding layers will be displayed. Initially only visible layers and layers with the property showInLayerTree = true are shown in the topic tree. If false, then all configured layers are shown in the topic tree. With the tree.type auto an add button is always shown.
categories no categories Configuration of the categories from the metadata. Only for the tree.type auto.
highlightedFeatures no highlightedFeatures Configuration in addition to highlighting features.
layerIDsToIgnore no String[] List of services.json layer ids that should not be displayed in the tree and map. Only for the tree.type auto.
layerIDsToStyle no layerIDsToStyle[] Special implementation for a HVV service (Hamburger Verkehrsbetriebe). Contains objects to query different styles of a layer ID.
metaIDsToIgnore no String[] All layers found in services.json that match these meta IDs will not be displayed in the tree and map. Only for the tree.type auto.
metaIDsToMerge no String[] All layers found in services.json that match these meta-IDs will be merged into a single layer in the tree. Only for the tree.type auto.
rasterLayerDefaultInfoFormat no String "text/xml" InfoFormat for Raster-Layer if not specified in layer configuration.
showFolderPath no Boolean false Determines whether the folder structure of visible layers is displayed in 'Show more functions'.
singleBaselayer no Boolean false Specifies whether only one base layer may be active at any time.
type no enum["auto"] The topic tree is built in the same structure as the topicconfig. If the type auto is configured, all layers from the services.json are offered in the tree, structured by their metadata (Geoportal-Hamburg).
validLayerTypesAutoTree no enum ["WMS", "SENSORTHINGS", "TERRAIN3D", "TILESET3D", "OBLIQUE"] Layer types to be used with the tree.type auto.
hideBackgroundsHeader no Boolean false Set to true to hide the backgrounds headline.
backgroundsHeaderText no String Alternativ backgrounds headline. If set, a none empty string is required. An empty string will output the default i18n string/translation.
hideDatalayerHeader no Boolean false Set to true to hide the datalayer headline.
datalayerHeaderText no String Alternativ datalayer headline. If set, a none empty string is required. An empty string will output the default i18n string/ translation.
subMenuContactButton no Boolean true Defines if the button to open the contact form with layer specific parameters is shown
allowBaselayerDrag no Boolean true Determines whether base layers can be moved over data layers.
contactPublisherName no Boolean false If enabled and a publisher is available, the contact message will display the publisher's name instead of the layer name.

Example type auto

{
    "tree": {
        "type": "auto",
        "validLayerTypesAutoTree": ["WMS", "WFS"],
        "layerIDsToIgnore": ["1912", "1913"],
        "metaIDsToIgnore": [
            "09DE39AB-A965-45F4-B8F9-0C339A45B154"
        ],
        "metaIDsToMerge": [
            "FE4DAF57-2AF6-434D-85E3-220A20B8C0F1"
        ],
        "layerIDsToStyle": [
            {
                "id": "1935",
                "styles": ["geofox_Faehre", "geofox-bahn", "geofox-bus", "geofox_BusName"],
                "name": ["Fährverbindungen", "Bahnlinien", "Buslinien", "Busliniennummern"],
                "legendURL": ["http://geoportal.metropolregion.hamburg.de/legende_mrh/hvv-faehre.png", "http://geoportal.metropolregion.hamburg.de/legende_mrh/hvv-bahn.png", "http://geoportal.metropolregion.hamburg.de/legende_mrh/hvv-bus.png", "http://87.106.16.168/legende_mrh/hvv-bus.png"]
            }
        ],
        "categories": [
        {
          "key": "kategorie_opendata",
          "name": "common:modules.layerTree.categoryOpendata",
          "active": true
        },
        {
          "key": "kategorie_inspire",
          "name": "common:modules.layerTree.categoryInspire"
        },
        {
          "key": "kategorie_organisation",
          "name": "common:modules.layerTree.categoryOrganisation"
        }
      ],
        "hideBackgroundsHeader": true,
        "backgroundsHeaderText": "This should not appear on output",
        "hideDatalayerHeader": false,
        "datalayerHeaderText": "Specific heading for datalayers across all languages - overwrites i18n"
    }
}

Example no type

{
    "tree": {
        "addLayerButton": {
            "active": true
        },
        "highlightedFeatures": {
            "active": false
        },
    }
}

portalConfig.tree.addLayerButton🔗

Configuration of the addLayerButton to select layers.

Name Required Type Default Description
active yes Boolean Controls if addLayerButton is shown or not.
searchBar no searchBar/Boolean false If active:true then a search within the configured searchInterfaces and searchCategory is possible.
buttonTitle no String Sets the button title with customized text.
searchInterfaceInstanceId no String Deprecated in next major release - use searchInterfaceInstances [] instead. Id of the search interface. Configured on the search interface at the parameter 'searchInterfaceId'.
searchCategory no String Deprecated in next major release - use searchInterfaceInstances [] instead. The category of the search.

Example

{
    "tree": {
        "addLayerButton": {
            "active": true,
            "buttonTitle": "Add Layers",
            "searchBar": {
                "active": true,
                "searchInterfaceInstances": [
                    {
                        "id":"elasticSearch_0",
                        "searchCategory": "Thema (externe Fachdaten)"
                    },
                    {
                        "id": "topicTree",
                        "searchCategory": "Thema"
                    }
                ]
            }
        }
    }
}
{
    "tree": {
        "addLayerButton": {
            "active": true,
            "buttonTitle": "Layer hinzufügen",
            "searchBar": {
                "active": true,
                "searchInterfaceInstanceId": "elasticSearch_0",
                "searchCategory": "Thema (externe Fachdaten)"
            }
        }
    }
}


portalConfig.tree.addLayerButton.searchBar🔗

A topic search is enabled within the configured SearchInterface and SearchCategory.

Name Required Type Default Description
active yes Boolean Specifies whether the search is displayed.
searchInterfaceInstances ja searchInterfaceInstances [] List of search interfaces from the searchbar that are to be used here.

Example

{
  "searchBar": {
    "active": true,
    "searchInterfaceInstances": [
      {
        "id": "elasticSearch_0",
        "searchCategory": "Topic (external data)"
      },
      {
        "id": "topicTree",
        "searchCategory": "Topic"
      }
    ]
  }
}

portalConfig.tree.addLayerButton.searchBar.searchInterfaceInstances🔗

List of search interfaces from the searchbar that are to be used here. The search only works with interfaces that perform a topic search.

Name Required Type Default Description
id yes String Id des Suchinterfaces. Konfiguriert an dem Suchinterface am Parameter 'searchInterfaceId'.
searchCategory yes String the search category.

Example

{
    "searchInterfaceInstances": [
        {
            "id":"elasticSearch_0",
            "searchCategory": "Thema (externe Fachdaten)"
        },
        {
            "id": "topicTree",
            "searchCategory": "Thema"
        }
    ]
}

portalConfig.tree.categories🔗

Configuration of the categories from the metadata. Only for the tree.type auto.

Name Required Type Default Description
key yes String Key of the respective category in the metadata.
name yes String Name of the categorie.
active no Boolean Indicates whether this category is initially active. If not specified, the 1st category is initially active.

Example

 "categories": [
        {
          "key": "categorie_opendata",
          "name": "common:modules.layerTree.categoryOpendata",
          "active": true
        },
        {
          "key": "categorie_inspire",
          "name": "common:modules.layerTree.categoryInspire"
        },
        {
          "key": "categorie_organisation",
          "name": "common:modules.layerTree.categoryOrganisation"
        }
      ]

portalConfig.tree.highlightedFeatures🔗

Configuration in addition to highlighting features. If features are highlighted with the "List" or "Select Features" module with "Zoom to this Feature" or via url parameter, then a layer with these features is selectable in the menu tree.

Name Required Type Default Description
active no Boolean false Indicates whether this feature is active.
layerName no String "common:shared.js.utils.selectedFeatures" Name of the created layer with the highlighted features. The name additionally contains the name of the module that was worked with.

Example

"highlightedFeatures": {
    "active": false,
    "layerName": "Selected features"
},

portalConfig.tree.layerIDsToStyle🔗

Special implementation for a HVV service (Hamburger Verkehrsbetriebe). Contains objects to query different styles of a layer ID. Only for the tree.type auto.

Name Required Type Default Description
id no String A services.json layer's id.
styles no String/String[] Style to use as a string; if multiple styles are to be used, they are listed in an array.
name no String/String[] Name to use as a string; if multiple names are to be used, they are listed in an array.
legendUrl no String/String[] URL of the legend image as a string ; if multiple legend images are to be used, their URLs are listed in an array.

Example:

{
    "layerIDsToStyle": [
        {
            "id": "1935",
            "styles": ["geofox_Faehre", "geofox-bahn", "geofox-bus", "geofox_BusName"],
            "name": ["Fährverbindungen", "Bahnlinien", "Buslinien", "Busliniennummern"],
            "legendURL": ["http://geoportal.metropolregion.hamburg.de/legende_mrh/hvv-faehre.png", "http://geoportal.metropolregion.hamburg.de/legende_mrh/hvv-bahn.png", "http://geoportal.metropolregion.hamburg.de/legende_mrh/hvv-bus.png", "http://87.106.16.168/legende_mrh/hvv-bus.png"]
        }
    ]
}

layerConfig🔗

The layerConfig entry defines the contents and their order in the topic selection. The following properties can be configured:

  1. Layers containing background maps (baselayer)
  2. Layers containing subject data (subjectlayer)
Name Required Type Default Description
baselayer no baselayer Layers containing background maps.
subjectlayer no subjectlayer Layers containing subject data.

Example

{
    "layerConfig": {
        "baselayer": {},
        "subjectlayer": {}
    }
}

layerConfig.baselayer🔗

Here you define layers to be displayed as background maps.

Name Required Type Default Description
elements no elements[] Definition of the layers to be displayed as background maps in the topic tree.

Example

{
    "layerConfig": {
        "baselayer": {}
    }
}

layerConfig.subjectlayer🔗

Layers or folders with layers to be displayed as subject data are defined here.

Name Required Type Default Description
elements no elements[] Definition of the layers or folders to be displayed in the topic tree as subject data.

Example

{
    "layerConfig": {
        "subjectlayer": {}
    }
}

layerConfig.elements🔗

Layers or folders are defined here. Folders can in turn contain elements with folders or layers.

Name Required Type Default Description
deactivateShowAllCheckbox no Boolean false Deactivates the "Show All" Checkbox, when the type is a folder
elements no elements[] Next layer with layers or folders under the type folder.
isFolderSelectable no Boolean false Specifies whether all layers in a folder can be activated or deactivated at once using a checkbox. The checkbox can have the following states: selected (activated), unselected (deactivated), and partially selected (indeterminate). Only relevant for the type folder.
name no String "" Layer or folder name. Can contain HTML tags that will only be rendered in layer tree.
shortname no String "" shortened layer or folder name. If configured it will be displayed in layer tree instead of name.
type no String "layer" Type of the element: "layer" or "folder"

Example baselayer

{
    "layerConfig": {
        "baselayer": {
            "elements": [
                {
                    "id": "123"
                }
            ]
        }
    }
}

Example subjectlayer

{
    "layerConfig": {
        "subjectlayer": {
            "elements": [
                {
                    "id": "123",
                    "type": "layer"
                }
            ]
        }
    }
}

Example with folders and layers

{
"elements": [
        {
        "name": "Folder level 1",
        "type": "folder",
        "isFolderSelectable": true,
        "elements": [
                {
                "name": "Folder level 2",
                "type": "folder",
                "deactivateShowAllCheckbox": true,
                "elements": [
                        {
                            "id": "2431"
                        },
                        {
                            "id": "2430"
                        },
                        {
                            "id": "2429"
                        },
                        {
                            "name": "Folder level 3",
                            "type": "folder",
                            "isFolderSelectable": true,
                            "elements": [
                                {
                                    "id": "1103"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

layerConfig.elements.layers🔗

Here layers of different types are configured. Layers can be configured in many different ways. Most of the attributes are defined in services.json, but can be overridden here at the layer. Besides these attributes, there are also type-specific attributes for the different layer types.

Name Required Type Default Description
autoRefresh no Integer Automatically reload layer every autoRefresh ms. Minimum value is 500.
capabilitiesUrl no String services.json value. Service's capabilities URL
filterRefId no Integer Referencing to a configured filter. It is the order (index) of Layer in filter. Starting with 0.
fitCapabilitiesExtent no Boolean false services.json value. When set to true and a capabilitiesUrl is specified in the configuration, the application will fit the map extent based on the bounding box information retrieved from the GetCapabilities document.
id yes String/String[] Id of the layer. The ids are resolved in services.json and the necessary information is used. When configuring an array of Ids, a layer is created that contains the LAYERS parameter in the request with a comma-separated list of the contents of the layers attribute of the individual layers. Setting minScale and maxScale of each layer is required to be in the services.json. It is important here that the specified ids address the same URL, i.e. use the same service and are of same typ. With the special character . as suffix, a LayerId can be used multiple times. Each LayerId marked with a suffix creates its own entry in the topic tree.
isPointLayer no Boolean false Whether the (vector) layer only consists of point features (only relevant for WebGL rendering)
name no String Layer name.
preview no preview Preview for baselayers of type WMS, WMTS and VectorTile. WMS and WMTS: if not specified, a centered map section is loaded.
renderer no String "default" Which render pipeline to use ("default" or "webgl") (only for vector data of type "GeoJSON", "WFS", "OAF"). "webgl" is currently classified as experimental and can lead to errors in some modules
showInLayerTree no Boolean false If true, then the layer is initially displayed in the topic tree. If portalConfig.tree.addLayerButton is not configured, then this attribute has no effect.
transparency no Integer 0 Layer transparency.
type no String "layer" Type of the lement: "layer" or "folder"
urlIsVisible no Boolean true Whether the service URL should be shown in the layer information window.
visibility no Boolean false Layer visibility.

Example

{
    "elements": [
        {
            "id": "2",
            "name": "Example Layer",
            "typ": "WMS",
            "visibility": false,
            "styleId": "3",
            "filterRefId": 0
        }
    ]
}

Example with an array of IDs

{
"elements": [
        {
            "id": ["123", "456", "789"],
            "name": "My test layer"
        }
    ]
}

Example layerId 8712 with suffix

{
"elements": [
        {
          "id": "8712.1",
          "styleId": "8712.1",
          "name": "Grundschulen",
          "wfsFilter": "resources/xml/schulstandort.staatlich.5.grundschulen.xml"
        },
        {
          "id": "8712.2",
          "styleId": "8712.2",
          "name": "Stadtteilschulen",
          "wfsFilter": "resources/xml/schulstandort.staatlich.5.stadtteilschulen.xml",
        },
        {
          "id": "8712.3",
          "styleId": "8712.3",
          "name": "Gymnasien",
          "wfsFilter": "resources/xml/schulstandort.staatlich.5.gymnasien.xml"
        },
        {
          "id": "8712.4",
          "styleId": "8712.4",
          "name": "Sonderschulen",
          "wfsFilter": "resources/xml/schulstandort.staatlich.5.sonderschulen.xml"
        }
    ]
}

layerConfig.elements.layers.preview🔗

Preview for baselayer in theme tree, also used in baselayerSwitcher. For the VectorTile, WMS and WMTS layer types. With the VectorTile layer a dropped preview image is displayed, with WMS and WMTS layers a map section is loaded. WMS and WMTS: if not specified, a centered map section is loaded. A detailed description is available in the documentation LayerPreview

Name Required Type Default Description
center no Number[]/String[] Center coordinates for the preview image loading parameters. Default is the center of the map extent.
checkable no Boolean false If true, then the preview image is usable as checkbox.
customClass no String Custom css class to override the style, NOTE: may need to use '!important'.
radius no Number 1000 Radius of the extent in meters.
src no String Link to a static preview image that is used instead of a dynamic preview. Can be a relative path or an external URL. Recommended size: 150x150 px.
zoomLevel no Number Zoom level from which the resolution for the loading parameters of the preview image are determined. Default is the initial zoomLevel of the map.

Example VectorTile

"preview":{
    "src": "./resources/vectorTile.png"
}

Example WMS

"preview": {
    "zoomLevel": 6,
    "center": "566245.97,5938894.79",
    "radius": 500
}

Beispiel WMS (static preview image)

"preview": {
    "src": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/The_Earth_seen_from_Apollo_17.jpg/250px-The_Earth_seen_from_Apollo_17.jpg"
}

layerConfig.elements.layers.customLayerIcon🔗

Adds a custom action button to a layer in the layer tree. The button can execute Masterportal actions.

Name Required Type Default Description
type yes String "customLayerIcon" Type identifier for this feature.
description yes String Description text shown as tooltip.
icon yes String Bootstrap icon class for the button. For selection see Bootstrap Icons.
execute yes execute Configuration of the action to execute when clicked.

Example

{
    "id": "orange_baenke",
    "name": "Orangene Bänke",
    "visibility": false,
    "customLayerIcon": {
        "type": "customLayerIcon",
        "description": "Datensätze zum Thema anzeigen",
        "icon": "bi-box-arrow-in-right",
        "execute": {
            "action": "Modules/UdpThemaAppV2/loadLayer",
            "payload": {
                "layerId": "orange_baenke"
            }
        }
    }
}

layerConfig.elements.layers.customLayerIcon.execute🔗

Action configuration for the custom layer icon.

Name Required Type Default Description
action yes String Action path to execute (e.g., "Modules/ModuleName/actionName").
payload no Payload Payload passed to the action. Can be either an Object or a String, depending on the action's requirements. String: When the action expects only an ID or name (e.g., "layerId"). Object: When multiple parameters need to be passed (e.g., { "layerId": "orange_baenke" }).

Example

Object:

{
    "action": "Modules/UdpThemaAppV2/loadLayer",
    "payload": {
        "layerId": "orange_baenke"
    }
}
String:
{
    "action": "Modules/Menu/toggleMenu",
    "payload": "mainMenu"
}


layerConfig.elements.layers.customLayerIcon.execute.Payload🔗

The execute module of CustomLayerIcon uses a payload that is passed to the configured action.
The payload can either be an object with key-value pairs or a single value (e.g., String, Boolean, or Number), depending on the action's requirements.

Name Required Type Default Description
payload no String An object with key-value pairs or a single value that is passed to the configured action. Depending on the action, this can also be a String, Boolean, or Number (e.g., Layer ID, menu name, status flag, etc.).

Example

{
  "layerId": "orange_baenke"
}

layerConfig.elements.layers.Group🔗

A group layer is created that contains all layers of the specified ids.

Name Required Type Default Description
id yes String[] Ids of the layers to be grouped, these must be contained in the services.json. They can have different types (field typ).
typ yes String "GROUP" Sets the layer typ to GROUP, which can group layers.
children no children[] Attributes on the grouped layers can be overwritten in children. Exception: visibility is not overwritten. All ids in the id array must have an equivalent in the children.

Example without children

 {
    "id": [ "20501", "20502", "20503", "20504" ],
    "typ": "GROUP",
    "name": "Leisure routes and long-distance cycle routes group",
    "styleId": "4515"
}
Example with children

{
    "id": [ "27926", "1711", "18104"],
    "typ": "GROUP",
    "name": "Group OAF, WFS, SensorThings",
    "visibility": false,
    "children" :[
        {
            "id": "27926",
            "styleId": "8712",
            "typ": "OAF",
            "gfiTheme": "schulinfo"
        },
        {
            "id": "1711",
            "styleId": "1711",
            "typ": "WFS"
        },
        {
            "id": "18104",
            "styleId": "18104",
            "typ": "SensorThings"
        }
    ]
}

layerConfig.elements.layers.Raster🔗

Raster layer typical attributes are listed here. Raster layers are of type StaticImage, GeoTiff, WMS, WMSTime and WMTS.


layerConfig.elements.layers.Raster.StaticImage🔗

StaticImage can be used to load images as layers and display them georeferenced on the map. The formats jpeg and png are supported.

Name Required Type Default Description
extent yes Extent [560.00, 5950.00, 560.00, 5945.00] Specifies the georeferencing of the image. The coordinate pair expected in EPSG:25832 format is the coordinate for the top left and bottom right corner of the image.
id yes String A unique ID must be assigned among all layers.
typ yes String "StaticImage" Sets the layer type to StaticImage, which can display static images as layers.
url yes String "https://meinedomain.de/bild.png" Link to the image to be displayed.

Example

{
    "id": "4811",
    "typ": "StaticImage",
    "url": "https://www.w3.org/Graphics/PNG/alphatest.png",
    "name": "Testing PNG file",
    "visibility": true,
    "extent": [560296.72, 5932154.22, 562496.72, 5933454.22]
}


layerConfig.elements.layers.Raster.GeoTiff🔗

The GeoTiff layer type allows GeoTiff images to be loaded as layers and to be displayed georeferenced on the map. One or more URL(s) to a resource are expected as the source. Currently, GeoTiff layers are excluded from printing.

Name Required Type Default Description
id yes String A unique ID must be assigned among all layers.
typ yes String Sets the layer type.
urls yes String[] URLs of the GeoTiff resources to be displayed.
sources no String[] Advanced configuration for the GeoTiff resources to be displayed. Replaces the urls option. See https://openlayers.org/en/latest/apidoc/module-ol_source_GeoTIFF.html#~SourceInfo
crs no String Allows specifying a CRS, e.g. "EPSG:25832". If not set, the CRS is read from the GeoTiff metadata.
styleId no String ID that references a style. The ID is resolved in style.json. The GeoTiff style format is explained here.
olSourceOptions no String[] Advanced options for the OpenLayers GeoTiff source. See OpenLayers GeoTIFFSource

Example (minimal)

{
    "id": "1138",
    "typ": "GeoTiff",
    "urls": ["https://openlayers.org/en/latest/examples/data/example.tif"],
    "name": "GeoTiff test layer",
    "visibility": true,
}

Example (advanced)

{
    "id": "1138",
    "typ": "GeoTiff",
    "name": "GeoTiff test layer",
    "visibility": true,
    "styleId": "GeoTiffStyle",
    "crs": "EPSG:4326",
    "sources": [
        { "url": "https://example.com/band1.tif", "min": -10, "max": 60 },
        { "url": "https://example.com/band2.tif", "min": -10, "max": 60 },
        { "url": "https://example.com/band3.tif", "min": -10, "max": 60 }
    ],
    "olSourceOptions": {
        "convertToRGB": false,
        "normalize": true
    }
}


layerConfig.elements.layers.Raster.WMS🔗

WMS typical attributes are listed here.

Name Required Type Default Description
name no String/String[] Name of the layer. If the styles attribute is configured, this attribute must be configured as Tpy String[].
extent no Extent [454591, 5809000, 700000, 6075769] Extent of the layer. If not specified, it will be used extent of the map view.
featureCount no Number 1 Number of features to return on a GetFeatureInfo query.
gfiAsNewWindow no gfiAsNewWindow null Considered only if infoFormat is text/html.
styles no String[] If styles are specified, they are also sent to the WMS. The server interprets these styles and returns the data accordingly.

Example

{
    "id": "4711",
    "name": ["MyFirstWMSLayerName", "MySecondWMSLayerName"],
    "transparency": 0,
    "visibility": true,
    "featureCount": 2,
    "gfiAsNewWindow": {
        "name": "_blank",
        "specs": "width=800,height=700"
    },
    "styles": ["firstStyle", "secondStyle"]
}

layerConfig.elements.layers.Raster.WMS.gfiAsNewWindow🔗

The parameter gfiAsNewWindow is only in use when infoFormat is set to "text/html".

This feature allows opening WMS HTML responses in their own window or tab rather than in an iFrame or GFI. To open HTML contents in a standard browser window, set the empty object {} instead of null.

You may change the opening behaviour by setting the parameter name:

Note on SSL encryption

If gfiAsNewWindow is not defined, it's applied with default values when the called URL is not SSL-encrypted (HTTPS).

Due to the No Mixed Content policy of all modern browsers, unencrypted content may not be displayed in an iFrame. Please mind that automatic forwarding (e.g. in Javascript) in iFrames to an insecure HTTP connection (without SSL) is not automatically recognized and may be prevented by the browser.

For such cases, define gfiAsNewWindow manually as described above.

Name Required Type Default Description
name yes enum["blank","self"] "_blank" "_blank" opens a new browser tab or window (depending on browser) with the specified HTML content. The window appearance can be changed with the specs parameter. "_self" opens the specified HTML content within the current browser window.
specs no String You may add an arbitrary amount of comma-separated properties like {"specs": "width=800,height=700"}. For more options, please read the documentation regarding javascript and window.open: W3 Schools: Met win open (German), JavaScript Info: Popup windows (English), MDN: Window open (English)

Example

{
    "id": "4711",
    "gfiAsNewWindow": {
        "name": "_blank",
        "specs": "toolbar=yes,scrollbars=yes,resizable=yes,top=0,left=500,width=800,height=700"
    }
}

layerConfig.elements.layers.Vector🔗

Vector typical attributes are listed here. Vector layers are of type WFS, GeoJSON (only in EPSG:4326), SensorLayer and OAF.

Name Required Type Default Description
additionalInfoField no String "name" Attribute name of the feature for the hitlist in the searchbar. If the attribute does not exist, the layer name is specified.
clusterDistance no Integer Pixel radius. Within this radius all features are "clustered" to one feature. ⚠️ clusterDistance for WFS layers with polygon or line geometry will result in the features not being displayed.
hitTolerance no String Click tolerance at which a hit is triggered for the GetFeatureInfo query.
loadingStrategy no String "bbox" LLoading strategy for loading the features. Possible values are "bbox" or "all". see.
mouseHoverField no String/String[] Attribute name or array of attribute names to be displayed when the user hovers over a feature.
nearbyTitle no String/String[] Attribute name or array of attribute names to be displayed as title in the result list during the proximity search.
searchField no String Attribute name for which the searchbar searches this layer.
styleGeometryType no String/String[] Geometry types for a WFS style, if only certain geometries of a layer are to be displayed see.
styleId yes String Id that defines the style. Id is resolved in the style.json.
isNeverVisibleInTree no Boolean A parameter for layer config to supply an option to hide the layer in tree. If true, the layer will not be visible in tree.

Example

{
"elements": [
          {
            "id": "22078",
            "name": "Bewohnerparkgebiete Hamburg",
            "typ": "WFS",
            "visibility": false,
            "styleId": "22078",
            "styleField": "bewirtschaftungsart",
            "searchField": "bwp_name",
            "mouseHoverField": [
                "bwp_name",
                "bewirtschaftungsart"
            ],
            "isNeverVisibleInTree": false
        },
        {
            "id" : "11111",
            "name" : "lokale GeoJSON",
            "url" : "portal/master/test.json",
            "typ" : "GeoJSON",
            "gfiAttributes" : "showAll",
            "layerAttribution" : "nicht vorhanden",
            "legend" : true
        }
    ]
}

layerConfig.elements.layers.Vector.WFS🔗

Attributes for the WFS search at highlightFeaturesByAttribute. For the call parameters see urlParameter.

Example calls:
?api/highlightFeaturesByAttribute=1&wfsId=1&attributeName=DK5&attributeValue=valueToSearchFor&attributeQuery=isequal
?api/highlightFeaturesByAttribute=123&wfsId=1711&attributeName=name&attributeValue=Helios%20ENDO-Klinik%20Hamburg&attributeQuery=IsLike
?api/highlightFeaturesByAttribute=123&wfsId=2003&attributeName=gebietsname&attributeValue=NSG%20Zollenspieker&attributeQuery=isequal
?api/highlightFeaturesByAttribute=123&wfsId=2928&attributeName=biotop_nr&attributeValue=111&attributeQuery=isLike

Name Required Type Default Description
escapeChar yes String The escape character for the WFS query - e.g. |
featurePrefix yes String Search prefix for the WFS query - e.g. app:.
singleChar yes String The single character for the WFS query - e.g. #
valueDelimiter no String ";" The value delimiter for isIn queries attributeValue.
wildCard yes String The wildcard character for the WFS query -e.g. %

Example

{
    "id": "1",
    "visibility": false,
    "name": "Animal species invasive",
    "featurePrefix": "app:",
    "wildCard": "%",
    "singleChar": "#",
    "escapeChar": "!"
}

layerConfig.elements.layers.VectorTile🔗

VectorTile typical attributes are listed here.

Name Required Type Default Description
useMpFonts no Boolean true Only available in a Vector Tile Layer. Switch to overwrite Fontstacks of external style definitions, to assure needed fonts are available. If set to false, used fonts need to be added separately e.g. via '' in index.html
vtStyles no vtStyle[] Choosable external style definitions.

Example

{
  "id": "123",
  "name": "Vectortile layer name",
  "epsg": "EPSG:3857",
  "url": "https://example.com/3857/tile/{z}/{y}/{x}.pbf",
  "typ": "VectorTile",
  "vtStyles": [
    {
      "id": "STYLE_1",
      "name": "Day view",
      "url": "https://example.com/3857/resources/styles/day.json",
      "defaultStyle": true
    },
    {
      "id": "STYLE_2",
      "name": "Night view",
      "url": "https://example.com/3857/resources/styles/night.json"
    }
  ],
  "preview":{
    "src": "./resources/vectorTile.png"
    }
}

layerConfig.elements.layers.VectorTile.vtStyle🔗

Style definitions. Available for Vector Tile Layers only.

Name Required Type Default Description
defaultStyle no String If set true, this style is used initially; if no field is set true, the first style is used.
id yes String Cross-service unique id.
name yes String Display name, e.g. used in the selection tool.
resolutions no Number[] Resolutions for zoom levels defined in style. If not set default resolutions from ol-mapbox-style project are used.
url yes String URL to load a style from. The linked JSON must match the Mapbox style specification.

Example

{
    "id": "Style_1",
    "name": "Red lines",
    "url": "https://example.com/asdf/styles/root.json",
    "defaultStyle": true,
    "resolutions": [
        661.4579761460263,
        264.58319045841048,
        66.14579761460263,
        26.458319045841044,
        15.874991427504629,
        10.583327618336419
    ]
}

layerConfig.elements.layers.Tileset🔗

List of attributes typically used for tilesets.

Name Required Type Default Description
hiddenFeatures no String[] [] List of IDs to be hidden in the plane.
cesium3DTilesetOption no cesium3DTilesetOption Cesium 3D tileset options directly forwarded to the Cesium tileset object. E.g. maximumScreenSpaceError is relevant to the visibility.

Example

{
    "id": "123456",
    "name": "TilesetLayerName",
    "visibility": true,
    "hiddenFeatures": ["id1", "id2"],
    "cesium3DTilesetOptions" : {
        "maximumScreenSpaceError" : 6
    },
}

layerConfig.elements.layers.Tileset.cesium3DTilesetOption🔗

Cesium 3D tileset options directly forwarded to the Cesium tileset object.

Name Required Type Default Description
maximumScreenSpaceError no Number The maximum screen space error used for refining the level of detail. This value helps determine when a tile is refined to its successors, and therefore plays an important role in balancing performance and visual quality.

Example

"cesium3DTilesetOptions" : {
    "maximumScreenSpaceError" : 6
}

layerConfig.elements.layers.Terrain🔗

List of attributes typically used for Terrain.

Name Required Type Default Description
cesiumTerrainProviderOption no cesiumTerrainProviderOption[] Cesium TerrainProvider options directly forwarded to the Cesium TerrainProvider E.g. requestVertexNormals is used for object surface shading.

Example

{
    "id": "123456",
    "name": "TerrainLayerName",
    "visibility": true,
    "cesiumTerrainProviderOptions": {
        "requestVertexNormals" : true
    },
}

layerConfig.elements.layers.Terrain.cesiumTerrainProviderOption🔗

Initialization options for the CesiumTerrainProvider constructor.

Name Required Type Default Description
requestVertexNormals no Boolean Flag indicating whether the client should request additional illumination information from the server, in the form of normals per vertex, if available.

Example

"cesiumTerrainProviderOptions": {
    "requestVertexNormals" : true
}

layerConfig.elements.layers.Entity3D🔗

List of attributes typically used for Entities 3D.

Name Required Type Default Description
entities yes Attribute[] List of entities of the layer to be displayed.

layerConfig.elements.layers.Entity3D.entities🔗

Entities3D entities typical attributes are listed here.

Name Required Type Default Description
allowPicking no Boolean true Whether the model may be clicked for GFI. Example: true
attributes no Attribute Model attributes, e.g. {"name": "test"}
latitude yes Number Model origin latitude in degrees. Example: 53.541831
longitude yes Number Model origin longitude in degrees. Example: 9.917963
height no Number 0 Model origin height. Example: 10
heading no Number 0 Model rotation in degrees. Example: 0
pitch no Number 0 Model pitch in degrees. Example: 0
roll no Number 0 Model roll in degrees. Example: 0
scale no Number 1 Model scale. Example: 1
show no Boolean true Whether the model should be shown. Should be true. Example: true
url yes String "" Model url, e.g. "https://daten-hamburg.de/gdi3d/datasource-data/Simple_Building.glb"

Example

{
      "id": "123456",
      "name": "EntitiesLayerName",
      "visibility": true,
      "typ": "Entities3D",
      "entities": [
         {
            "url": "https://daten-hamburg.de/gdi3d/datasource-data/Simple_Building.glb",
           "attributes": {
             "name": "einfaches Haus in Planten und Blomen"
           },
           "latitude": 53.5631,
           "longitude": 9.9800,
           "height": 12,
           "heading": 0,
           "pitch": 0,
           "roll": 0,
           "scale": 5,
           "allowPicking": true,
           "show": true
         }
       ],
       "gfiAttributes" : {
         "name": "Name"
      }
  },

layerConfig.elements.layers.Entity3D.entities.Attribute🔗
Name Required Type Default Description
name no String "" Field that can be displayed in the GFI.

Example

{
   "name": "Fernsehturm.kmz"
}

Datatypes🔗

Datatypes.Coordinate🔗

A coordinate is an array of two numbers. The first represents the easting, the second the northing.

Example integer coordinate

[561210, 5932600]

Example float coordinate

[561210.1458, 5932600.12358]

The following datatypes can be used in the configuration.

Datatypes.Extent🔗

An extent is an array of four numbers describing a rectangular scope. The rectangle is constructed from the "lower left" and "upper right" corner, so the scheme used is [Easting lower left, Northing lower left, Easting upper right, Northing upper right], or [minx, miny, maxx, maxy].

Example extent

[510000.0, 5850000.0, 625000.4, 6000000.0]

Datatypes.Payload🔗

CustomMenuElement Module execute from payload. The appropriate payload for the action must be specified. Here is the example of the Alerting/addSingleAlert.

Name Required Type Default Description
content yes String Content of the message.
title no String Title of the message.

Example

{
    "title":"to all people",
    "content": "Hello world"
}

Datatypes.Fill🔗

Name Required Type Default Description
color no Float[] Possible setting: color (RGBA)

Example

"fill": {
    "color": [215, 102, 41, 0.9]
}

Datatypes.Stroke🔗

Name Required Type Default Description
width no Integer Possible setting: width
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA)
"stroke": {
    "width": 4 ,
    "color": [255, 0, 255, 0.9]
    }

Datatypes.Image🔗

Name Required Type Default Description
scale no Integer Possible setting: scale
"image": {
    "scale": 2
    }

Datatypes.Snippets🔗

An object defining a single snippet for the filter.

Note: Time-related snippets (date and dateRange) can only be operated in external mode or as a fixed rule (visible: false) if their counterpart at the WFS service is in a correct time format (ISO8601: YYYY-MM-DD).

Name Required Type Default Description
addSelectAll no Boolean false For type dropdown with multiselect: true only: Adds an additional entry on top of the list to select/deselect all entries.
attrName yes String The attribute name used for filtering. Is to be an array if dateRange, sliderRange or featureInfo is used (see examples).
autoInit no Boolean true For type dropdown only: If set to false: Turns off the automatic identification of value (in case of dropdown) or minValue/maxValue (in case of slider(Range) and date(Range)).
children no Children[] [] Child snippet configuration.
componentName no String Only for snippet type customComponent: The name of the Vue component to be used as a snippet. Can also be an addon.
decimalPlaces no Number 0 Defines decimal places for the step for slider and sliderRange
delimiter no String For type dropdown only: If feature attributes are themselfs again seperated by a delimiter to act as pseudo array, setting delimiter to the sign that seperates the terms, will result in the expected outcome.
display no String "default" If snippet type dropdown: If snippet type dateRange: If set to datepicker, only the selection via calendar will be displayed, if set to slider, only the slider will be displayed, if set to all, datepicker and slider will be displayed.
format no String "YYYY-MM-DD" For type date and dateRange only: The format the date is stored in the database. Leave empty for ISO8601. If the format differs from ISO8601, the snippet must be visible (visible: true) and the filter must work in external: false mode. Can be specified as an array of two different formats if an array of different attribute names is also specified as attrName and the date formats of the attribute values differ.
hideSelected no Boolean true As default behavior, the previously selected dropdown item is hidden in the dropdown list. Can be set to false to have the selected item shown and styled as selected.
info no String An info text or translation key. If set, a little icon will shown right hand side of the snippet. Can be set to true to display a default text for the snippet type.
type no String The type of this snippet. Can be one of the following: checkbox, dropdown, text, slider, sliderRange, date, dateRange, featureInfo, chart. Will be indentified automatically if left away, following a data type rule: boolean becomes checkbox, string becomes dropdown, number becomes sliderRange, unknown becomes text.
localeCompareParams no LocaleCompareParams For type Snippet-Typ dropdown only: The sorting of the dropdown boxes can be adjusted according to your own wishes via this parameter.
maxValue no Number For type date and slider only: The maximum value as number or date string. Leave empty for automatic identification of boundaries.
minValue no Number For type date and slider only: The minimum value as number or date string. Leave empty for automatic identification of boundaries.
multiselect no Boolean true For type dropdown only: Selection of multiple entries. Set to false to switch to single select.
operator no String The operator to connect the set value to the value in the database. Can be one of the following - depending if it makes sense for the type and is available for the used interface: INTERSECTS, BETWEEN, EQ, IN, STARTSWITH, ENDSWITH, NE, GT, GE, LT, LE. If left away, defaults are: boolean becomes EQ, string becomes EQ, number becomes BETWEEN, unknown becomes EQ.
operatorForAttrName no String "AND" By setting this parameter to OR in conjunction with attrName as an array, it is possible to filter over various attrNames with a logical OR.
optionsLimit no Number 20000 For type dropdown only: Adds a limit of options in dropdown list.
placeholder no String "" For type dropdown only: The placeholder to use. Can be a translation key.
prechecked no String[]/String Initially checked value. For dropdown, sliderRange and dateRange an array of values, for checkbox a boolean, for slider a number, for text a string and for date a string (following the set format). If visible is set to false, value set by prechecked are forced for filtering. For dropdown with multiselect: If prechecked is set to all, all available values will be selected initially.
renderIcons no String "none" For type dropdown only: If set to fromLegend icons will be placed left hand side of each entry. Icons are taken from legend. Use an object with attrNames as keys and imagePath as value {attrName: imagePath} to manually set images (see example).
service no Service For the initial filling of a snippet dropdown, date, slider an alternative service can be used. This may increase the performance during initial loading. The default is the service of the configured FilterLayer.
showAllValues no Boolean For dropdown snippet type only: prevents hiding of unselected values when set to true. Can only be used in conjunction with prechecked: "all".
subTitles no String[] [] Only for snippet type dateRange: The additional from and to labels to be displayed above the calendar fields. As an array with two elements (e.g. ["from", "to"]). Set subTitles to true to use the values of attrName, to false to not display labels.
timeouts no Timeouts Timeouts to configure for better user experience.
title no String The title of the snippet. Can be a translation key. If not set, the title is taken from the gfiAttributes and if they are not present, then the attrName is used. Can be set to false to disable the display of a title. Can be set to true to force the display of the attrName.
type no String The type of this snippet. Can be one of the following: checkbox, dropdown, text, slider, sliderRange, date, dateRange, customComponent. Will be indentified automatically if left away, following a data type rule: boolean becomes checkbox, string becomes dropdown, number becomes sliderRange, unknown becomes text.
value no String[] If omitted, values are determined automatically. If set for dropdown: The values to be selectable in the list. If set for checkbox: Instead of boolean values, the specified values for the true and false states should be taken (e.g. ["Yes", "No"]). For dateRange: start and end date for date picker and/or slider. For sliderRange: the min and max values.
visible no Boolean true The snippet is visible. Set to false to hide the snippet: This gives you the power to use prechecked as an always rule to force filtering of a fixed attrName and value.
adjustOnlyFromParent no Boolean false For type dropdown only: If true, only adjusted from parent snippet.
allowEmptySelection no Boolean true For type dropdown only: If true allows to remove all selected values. If false one value must be left selected.

Example

Example for a text snippet. A input box with placeholder will be shown for filtering free text.

{
    "title": "Description of school",
    "attrName": "school_description",
    "type": "text",
    "operator": "IN",
    "placeholder": "Search in description"
}

Example

Example for a checkbox snippet. A checkbox is shown to search for "Oui" in the database if checked. The checkbox is checked by default.

{
    "title": "A l'option végétalienne ?",
    "attrName": "vegan_option",
    "type": "checkbox",
    "operator": "EQ",
    "value": ["Oui", "Non"],
    "prechecked": true
}

Example

Example for a dropdown snippet. A simple dropdown with single select and placeholder is used.

{
    "title": "District",
    "attrName": "city_district",
    "type": "dropdown",
    "multiselect": false,
    "placeholder": "Choose a district"
}

Example

Example for a dropdown snippet. A dropdown with multiselect and select all option, manually set icons, info, fixed value and prechecked. Displayed as list.

{
    "title": "District",
    "attrName": "city_district",
    "info": "Some districts of London.",
    "type": "dropdown",
    "multiselect": true,
    "optionsLimit": 20000,
    "addSelectAll": true,
    "value": [
        "Whitehall and Westminster",
        "Piccadilly and St James's",
        "Soho and Trafalgar Square",
        "Covent Garden and Strand",
        "Bloomsbury and Fitzrovia"
    ],
    "prechecked": [
        "Piccadilly and St James's",
        "Soho and Trafalgar Square"
    ],
    "renderIcons": {
        "Whitehall and Westminster": "https://example.com/img/whitehall.png",
        "Piccadilly and St James's": "https://example.com/img/piccadilly.png",
        "Soho and Trafalgar Square": "https://example.com/img/soho.png",
        "Covent Garden and Strand": "https://example.com/img/covent.png",
        "Bloomsbury and Fitzrovia": "https://example.com/img/bloomsbury.png"
    },
    "placeholder": "Choose a district"
}

Example

Example of a dropdown snippet where all available values are initially selected.

{
    "title": "District",
    "attrName": "city_district",
    "type": "dropdown",
    "multiselect": true,
    "prechecked": "all",
    "placeholder": "Choose a district"
}

Example

Example for a slider snippet. A slider for a single digit and a less or equals operator. With minValue and maxValue to avoid automatic identification of boundaries.

{
    "title": "First classes",
    "attrName": "number_of_first_classes",
    "type": "slider",
    "operator": "LE",
    "minValue": 1,
    "maxValue": 5,
    "decimalPlaces": 2
}

Example

Example for a slider range snippet. A slider range without minValue and maxValue to use automatic identification of boundaries.

{
    "title": "Angle d'inclinaison du toit du garage",
    "attrName": "angle",
    "type": "sliderRange",
    "operator": "BETWEEN",
    "decimalPlaces": 2
}

Example

Example for a slider range snippet. A slider range with two attrName for min and max. With minValue and max Value to avoid automatic identification of boundaries.

{
    "title": "Angle d'inclinaison du toit du garage",
    "attrName": ["angle_minimal", "angle_maximal"],
    "type": "sliderRange",
    "operator": "BETWEEN",
    "value": [0, 90]
}

Example

Example for a date snippet. A date picker for a single date with minValue and maxValue to avoid automatic identification of boundaries.

{
    "title": "Birthday",
    "attrName": "birthday",
    "type": "date",
    "format": "YYYY-MM-DD",
    "minValue": "2000-01-01",
    "maxValue": "2022-12-31"
}

Example

Example for a date range snippet. A date range with two attrName for min and max. With a special date format. Uses intersects operator, without minValue and maxValue to use automatic identification of boundaries.

{
    "title": "Bauzeit der Autobahnen",
    "attrName": ["autobahn_baubeginn", "autobahn_bauende"],
    "type": "dateRange",
    "operator": "INTERSECTS",
    "format": "DD.MM.YY"
}

Example

Example of a DateRange snippet. With the slider turned off (display: datepicker). With two attribute names for min and max values, two subTitles different from the attrName and different date formats. Additionally a period is preset. Please note that the format of the preset values is based on format.

{
    "type": "dateRange",
    "title": "Auslandssemester",
    "subTitles": ["Start der Reise", "End of Journey"],
    "attrName": ["start", "end"],
    "format": ["DD.MM.YYYY", "YYYY/DD/MM"],
    "prechecked": ["01.08.2022", "2023/06/31"],
    "display": "datepicker"
}

Example

Example of a DateRange snippet. With time points preset via prechecked and min and max values preset via value.

{
    "type": "dateRange",
    "title": "Aktive Baustellen im ...",
    "subTitles": ["Zeitraum von", "Zeitraum bis"],
    "attrName": ["baubeginn", "bauende"],
    "format": "DD.MM.YYYY",
    "value": ["01.01.2019", "31.12.2034"],
    "prechecked": ["07.07.2022", "25.02.2030"]
}

Example

Example for a slider range snippet of SensorThingsAPI (STA).

{
    "type": "sliderRange",
    "title": "Anzahl der Fahrräder",
    "attrName": "@Datastreams.0.Observations.0.result"
}

Example

Example of a snippet that wants to filter over multiple attributes at once and display the features that match the set value for one of the specified attributes.

{
    "attrName": ["xpplanname", "rechtscharakterwert"],
    "operatorForAttrName": "OR",
    "type": "dropdown",
}

Datatypes.Snippets.Children🔗

Child snippet configuration. The child snippets are configured in the same way as "normal" snippets. See the snippet datatype for more information.

The parent-child relationship can be used for the following use case: If a dataset is too large, preselecting an attribute can reduce the amount of subsequent filtering. (Example: animal species group mammals as preselection would significantly reduce the data space of all animals).

The children parameter instructs a snippet not to trigger any filtering itself, but to "feed" only its child snippets configured under children with the data resulting from its setting. (Example: mammals will shrink the resulting animal species to an acceptable range). Only the selection in one of the child snippets (example: "blue whale") finally performs the filtering.

Multi-dimensional nesting (grandparent, parent, child) is not currently provided.

Name Required Type Default Description
addSelectAll no Boolean false For type dropdown with multiselect: true only: Adds an additional entry on top of the list to select/deselect all entries.
attrName yes String The attribute name used for filtering. Is to be an array if dateRange or sliderRange is used (see examples).
autoInit no Boolean true For type dropdown only: If set to false: Turns off the automatic identification of value (in case of dropdown) or minValue/maxValue (in case of slider(Range) and date(Range)).
delimiter no String For type dropdown only: If feature attributes are themselfs again seperated by a delimiter to act as pseudo array, setting delimiter to the sign that seperates the terms, will result in the expected outcome.
display no String "default" If snippet type dropdown: If snippet type dateRange: If set to datepicker, only the selection via calendar will be displayed, if set to slider, only the slider will be displayed, if set to all, datepicker and slider will be displayed.
hideSelected no Boolean true As default behavior, the previously selected dropdown item is hidden in the dropdown list. Can be set to false to have the selected item shown and styled as selected.
info no String An info text or translation key. If set, a little icon will shown right hand side of the snippet. Can be set to true to display a default text for the snippet type.
type no String The type of this snippet. Can be one of the following: dropdown. Will be indentified automatically if left away, following a data type rule: string becomes dropdown.
localeCompareParams no LocaleCompareParams For type Snippet-Typ dropdown only: The sorting of the dropdown boxes can be adjusted according to your own wishes via this parameter.
multiselect no Boolean true For type dropdown only: Selection of multiple entries. Set to false to switch to single select.
operator no String The operator to connect the set value to the value in the database. Can be one of the following - depending if it makes sense for the type and is available for the used interface: INTERSECTS, BETWEEN, EQ, IN, STARTSWITH, ENDSWITH, NE, GT, GE, LT, LE. If left away, defaults are: boolean becomes EQ, string becomes EQ, number becomes BETWEEN, unknown becomes EQ.
operatorForAttrName no String "AND" By setting this parameter to OR in conjunction with attrName as an array, it is possible to filter over various attrNames with a logical OR.
optionsLimit no Number 20000 For type dropdown only: Adds a limit of options in dropdown list.
placeholder no String "" For type dropdown only: The placeholder to use. Can be a translation key.
prechecked no String[]/String Initially checked value. For dropdown, sliderRange and dateRange an array of values, for checkbox a boolean, for slider a number, for text a string and for date a string (following the set format). If visible is set to false, value set by prechecked are forced for filtering. For dropdown with multiselect: If prechecked is set to all, all available values will be selected initially.
renderIcons no String "none" For type dropdown only: If set to fromLegend icons will be placed left hand side of each entry. Icons are taken from legend. Use an object with attrNames as keys and imagePath as value {attrName: imagePath} to manually set images (see example).
service no Service For the initial filling of a snippet dropdown, date, slider an alternative service can be used. This may increase the performance during initial loading. The default is the service of the configured FilterLayer.
showAllValues no Boolean For dropdown snippet type only: prevents hiding of unselected values when set to true. Can only be used in conjunction with prechecked: "all".
title no String The title of the snippet. Can be a translation key. If not set, the title is taken from the gfiAttributes and if they are not present, then the attrName is used. Can be set to false to disable the display of a title. Can be set to true to force the display of the attrName.
value no String[] If omitted, values are determined automatically. If set for dropdown: The values to be selectable in the list. If set for checkbox: Instead of boolean values, the specified values for the true and false states should be taken (e.g. ["Yes", "No"]). For dateRange: start and end date for date picker and/or slider. For sliderRange: the min and max values.
visible no Boolean true The snippet is visible. Set to false to hide the snippet: This gives you the power to use prechecked as an always rule to force filtering of a fixed attrName and value.
adjustOnlyFromParent no Boolean false For type dropdown only: If true, only adjusted from parent snippet.
allowEmptySelection no Boolean true For type dropdown only: If true allows to remove all selected values. If false one value must be left selected.

Example

Example of a dropdown snippet with parent-child relationship. The cityA and cityB dropdowns are initially not filled. Only when a district is selected do they fill with the cities of the selected district, but no filtering takes place on the map. Only the selection of a city finally initiates the filtering by the city name.

{
    "title": "District",
    "attrName": "city_district",
    "type": "dropdown",
    "multiselect": false,
    "placeholder": "Choose a district",
    "children": [
        {
            "type": "dropdown",
            "attrName": "cityA",
            "placeholder": "cityA"
        },
        {
            "type": "dropdown",
            "attrName": "cityB",
            "placeholder": "cityB"
        }
    ]
}

Datatypes.Snippets.Timeouts🔗

User experience can be improved with the adjustment of timeouts. This is especially true for filters that work with strategy: active.

Name Required Type Default Description
input no Number 1400 For snippet typ sliderRange and slider only: The time in milliseconds that should elapse before filtering is triggered after entering numbers and characters into the input field.
slider no Number 800 For snippet typ sliderRange, slider and dateRange only: The time in milliseconds that should elapse before filtering is triggered after the last change of the slider.

Example

An example of a sliderRange snippet with accelerated filtering after input into the input field or changing the slider.

{
    "title": "Baustellen",
    "attrName": ["baubeginn", "bauende"],
    "type": "sliderRange",
    "timeouts": {
        "input": 800,
        "slider": 400
    }
}

Datatypes.Snippets.Service🔗

An object that describes a service for a snippet. All service types that the filter supports can theoretically be used. The configuration depends on the type of service.

WFS

Name Required Type Default Description
collection yes String The collection that will be loaded. Only for OAF
type yes String The type of service.
typename yes String The feature type that will be loaded. Only for WFS
url yes String The service url.

Example

{
    "type": "WFS",
    "url": "https://qs-geodienste.hamburg.de/HH_WFS_verbreitungskarten_tiere",
    "typename": "verbreitung_tiere_eindeutige_liste"
}

Example GeoJSON

{
    "type": "GeoJSON",
    "url": "../chartjs/charts_stadtteil.geojson"
}
Example OAF

{
    "url": "https://api.hamburg.de/datasets/v1/schulen",
    "collection" : "staatliche_schulen",
    "type": "OAF"
}

Datatypes.Snippets.LocaleCompareParams🔗

A string or object that supply the parameters for util function localeCompare.

Example String

"localeCompareParams": "de"

Object

Name Required Type Default Description
locale no String The locale code according ISO 3166
options no Options The custom options for sorting in localeCompare

Example Object

{
    "locale": "de",
    "options": {
        "ignorePunctuation": true
    }
}

Datatypes.Snippets.LocaleCompareParams.Options🔗

An object for custom control of the localeCompare function used to sort dropdown boxes, the documentation is: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

Name Required Type Default Description
ignorePunctuation no Boolean false Determines whether punctuation will be ignored.
numeric no Boolean false Determines whether numeric collation will be used
sensitivity no String "variant" Determines whether string collation will be used.

Example

{
    "ignorePunctuation": true
}

Datatypes.Bbox🔗

BBOX value according to the speedProfile. Coordinate system depends on the epsg parameter. Geosearch service must support bbox string.

Name Required Type Default Description
speedProfile no String Coordinate values "West,South,East,North"

Example

{
    "bbox": {"CYCLING": "9.6,53.40,10.4,53.84"}
}

Datatypes.CustomAvoidFeatures🔗

Possibility to define additional avoid features for the different speed profiles (additionally to the BKG service) (requires own modified backend).

Name Required Type Default Description
speedProfile no String[] Options for avoid traffic routes that should be available for the speedProfile.

Example

{
    "customAvoidFeatures": {
       "CYCLING": ["STEPS", "FERRIES", "UNPAVEDROADS"],
       "CAR": ["HIGHWAYS"]
    }
}

Datatypes.CustomPreferences🔗

Routing-tool directions route customPreferences. Possibility to define additional preferences for the different speed profiles (additionally to the BKG service) (requires own modified backend)

Name Required Type Default Description
speedProfile no String[] Which preferences should be available for the speedProfile.

Example

{
    "customPreferences": {
       "CYCLING": ["RECOMMENDED", "SHORTEST", "GREEN"],
       "CAR": ["RECOMMENDED", "SHORTEST", "GREEN"]
    }
}

Datatypes.StyleRoute🔗

Routing-tool directions route style options.

Name Required Type Default Description
fillColor no Number[] [255, 44, 0, 1] Which color should be used to fill.
width no Number 6 How thick should the line be displayed.
highlightColor no Number[] [255, 255, 255, 1] Which color should be used to highlight the route.
highlightWidth no Number 9 How thick should the highlighting line be displayed.
partHighlightColor no Number[] [255, 255, 255, 1] Which color should be used when highlighting part of the route.
highlightWidth no Number 9 How thick should the highlighting part of the route be displayed.

Example

{
    "styleRoute": {
        "fillColor": [255, 44, 0, 1],
        "width": 6,
        "highlightColor": [255, 255, 255, 1],
        "highlightWidth": 9,
        "partHighlightColor": [255, 255, 255, 1],
        "partHighlightWidth": 3
    }
}

Datatypes.StyleWaypoint🔗

Routing-tool directions waypoint style options.

Name Required Type Default Description
lineColor no Number[] [255, 127, 0] Which color should be used for the border.
lineWidth no Number 4 How thick should the border be.
fillColor no Number[] [255, 127, 0] Which color should be used to fill.
textFillColor no String "#000" Which color should be used for the text.
textLineColor no String "#fff" Which color should be used for the text background.
textLineWidth no Number 3 How big should the text be displayed.
opacity no Number 0.3 How transparent should the fill color be displayed.
radius no Number 8 How big should the waypoint be displayed.

Example

{
    "styleWaypoint": {
        "lineColor": [255, 127, 0],
        "lineWidth": 4,
        "fillColor": [255, 127, 0],
        "textFillColor": "#000",
        "textLineColor": "#fff",
        "textLineWidth": 3,
        "opacity": 0.3,
        "radius": 8
    }
}

Datatypes.StyleAvoidAreas🔗

Routing-tool directions avoid areas style options.

Name Required Type Default Description
lineColor no Number[] [0, 127, 255] Which color should be used for the border.
lineWidth no Number 2 How thick should the border be.
fillColor no Number[] [0, 127, 255] Which color should be used to fill.
opacity no Number 0.3 How transparent should the fill color be displayed.
pointRadius no Number 8 How big should the corner points be displayed.
pointLineWidth no Number 4 How big should the border of the corner points be displayed.

Example

{
    "styleAvoidAreas": {
        "lineColor": [0, 127, 255],
        "lineWidth": 2,
        "fillColor": [0, 127, 255],
        "opacity": 0.3,
        "pointRadius": 8,
        "pointLineWidth": 4
    }
}

Datatypes.BatchProcessing🔗

Routing-tool directions batch processing options.

Name Required Type Default Description
enabled no Boolean false If the batch processing should be enabled for the user.
active no Boolean false If the batch processing is active by default.
limit no Number 1000 The maximum amount of rows allowed in the csv file.
maximumConcurrentRequests no Number 3 The maximum concurrent requests allowed to be made by the batch processing task handler.

Example

{
    "batchProcessing": {
        "enabled": false,
        "active": false,
        "limit": 1000,
        "maximumConcurrentRequests": 3
    }
}

Datatypes.StyleCenter🔗

Routing-tool isochrones centers style options.

Name Required Type Default Description
lineColor no Number[] [255, 127, 0] Which color should be used for the border.
lineWidth no Number 4 How thick should the border be displayed.
fillColor no Number[] [255, 127, 0] Which color should be used to fill.
opacity no Number 0.3 How transparent should the fill color be displayed.
radius no Number 8 How big should the waypoint be displayed.

Example

{
    "styleCenter": {
        "lineColor": [255, 127, 0],
        "lineWidth": 4,
        "fillColor": [255, 127, 0],
        "opacity": 0.3,
        "radius": 8
    }
}

Datatypes.StyleIsochrones🔗

Routing-tool isochrones style options.

Name Required Type Default Description
lineWidth no Number 2 How thick should the lines be displayed.
opacity no Number 0.65 How transparent the fill color is displayed.
startColor no Number[] [66, 245, 78] The starting color for the fill color interpolation calculation.
endColor no Number[] [245, 66, 66] The end color for the fill color interpolation calculation.

Example

{
    "styleIsochrones": {
        "lineWidth": 2,
        "opacity": 0.65,
        "startColor": [66, 245, 78],
        "endColor": [245, 66, 66]
    }
}

Datatypes.Literal🔗

A literal can either have the parameter clause, or the parameter field. If both are set, the clause-part will be ignored. However, a field needs to be wrapped inside a clause (as seen in most examples).

Name Required Type Default Description
clause yes Clause Defines the way multiple literals should be queried together. Can be seen as a group of literals.
field no Field Representation for the selection field of a service value for the user.

Examples

{
    "clause": {
        "type": "and",
        "literals": [
            {
                "field": {
                    "queryType": "equal",
                    "fieldName": "gemarkung",
                    "inputLabel": "District",
                    "options": ""
                }
            },
            {
                "field": {
                    "queryType": "equal",
                    "fieldName": "flur",
                    "inputLabel": "Cadastral District",
                    "options": "flur"
                }
            }
        ]
    }
}
{
    "field": {
        "queryType": "equal",
        "fieldName": "rivers",
        "inputLabel": "Rivers",
        "options": [
            {
                "id": "0",
                "displayName": "Elbe"
            },
            {
                "id": "1",
                "displayName": "Moselle"
            },
            {
                "id": "2",
                "displayName": "Rhine"
            }
        ]
    }
}

Datatypes.Literal.Clause🔗

A clause defines the way multiple literals should be queried together.

Name Required Type Default Description
literals yes Literal[] Array of literals.
type yes enum["and", "or"] The way the literals in this clause should be queried together.

Example

{
    "clause": {
        "type": "and",
        "literals": [
            {
                "field": {
                    "queryType": "equal",
                    "fieldName": "gemarkung",
                    "inputLabel": "District",
                    "options": ""
                }
            },
            {
                "field": {
                    "queryType": "equal",
                    "fieldName": "flur",
                    "inputLabel": "Cadastral District",
                    "options": "flur"
                }
            }
        ]
    }
}

Datatypes.Literal.Field🔗

A field represents the selection field for a value in the service. It is possible to use a field for multiple search parameters. To do this, each parameter needs to be an array where each element of the array corresponds to a single parameter of the service. A configuration like

{
    "field": {
        "queryType": ["equal", "like"],
        "fieldName": ["flst", "gmkr"],
        "inputLabel": ["Parcel", "Communal district number"]
    }
}

would create a single field with which the user can decide whether he wants to use the input field to search for a Parcel or a Communal district number by selecting the alue through a dropdown. If the values are not an array, a label for the field will be shown instead of the dropdown.

If the parameter options is set, a select field is used, otherwise a simple text input. If options is a String, it is important that the order of the fields corresponds to the order of the objects in the external source (selectSource). Assume the source looks like this:

{
    "one": {
        "foo": {
            "id": "foo_one",
            "bar": ["f1_bar_one", "f1_bar_two"]
        }
    },
    "two": {
        "foo": {
            "id": "foo_two",
            "bar": ["f2_bar_one", "f2_bar_two"]
        }
    }
}

Then the order of the config should look like this:

{
    "clause": {
        "type": "and",
        "literals": [
            {
                "field": {
                    "queryType": "equal",
                    "fieldName": "objects",
                    "inputLabel": "Objects",
                    "options": ""
                }
            },
            {
                "field": {
                    "queryType": "equal",
                    "fieldName": "foo",
                    "inputLabel": "Foo",
                    "options": "foo"
                }
            },
            {
                "field": {
                    "queryType": "equal",
                    "fieldName": "bar",
                    "inputLabel": "Bar",
                    "options": "foo.bar"
                }
            }
        ]
    }
}
Name Required Type Default Description
defaultValue no String/String[] If the field is not required, this value will be used on sending.
fieldName yes String/String[] The wfs service parameter name for the comparison.
inputLabel yes String/String[] Label for the UI element. May be a translation key.
inputPlaceholder no String/String[] Placeholder for the UI element; only used if options is not set. Should contain example data. May be a translation key.
inputTitle no String/String[] Value to be shown when hovering the UI element. May be a translation key.
required no Boolean/Boolean[] false Whether the field has to be filled.
options no String/Option[]/String[] If options is an array (irrelevant if of strings or Option), the given values are used for selection. These options may either match Option or are plain values (String / Number). In the latter case, the plain value is used as both id and displayName.
If it is a String, there are different possibilities:
  • If the String is empty, the keys of selectSource are used.
  • If the String is not empty, it is assumed that another field with options="" exists; otherwise the field is disabled. It is also assumed that the String represents an array in selectSource providing further options.
Note: It is also possible to declare the options as a multidimensional array Option[][]. However, this can't be used as a parameter for Masterportal Admin. This should be used if an Option[] is wanted for a field that uses multiples parameters.
queryType no enum["equal", "like"]/enum["equal", "like"][] Required for usage with WFS@1.1.0. The queryType declared how the field should be compared to the value in the service.
usesId no Boolean/Boolean[] null Only relevant if the Parameters options is set and an empty String (root element). Determines whether the key of the object of the external source should be used as a value for the query or if the object has an Id which should be used.

Example

{
    "field": {
        "queryType": "equal",
        "fieldName": "rivers",
        "inputLabel": "Rivers",
        "options": [
            {
                "displayName": "Elbe",
                "fieldValue": "0"
            },
            {
                "displayName": "Moselle",
                "fieldValue": "1"
            },
            {
                "displayName": "Rhine",
                "fieldValue": "2"
            }
        ]
    }
}

Datatypes.Literal.Field.Option🔗

A selectable option for a queryable parameter.

Name Required Type Default Description
displayName no String Value to be displayed for the value. May be a translation key. If not set, the id will be shown.
fieldValue yes String Value that is supposed to be sent to the service.

Example

{
    "fieldValue": "elbe",
    "displayName": "Elbe"
}

Datatypes.ResultList🔗

Settings for the output of the found features in the result list. By specifying showAll all attributes of the found features are displayed in their original form. By using an object, a key of the object must represent one of the attributes of the feature, and the corresponding value defines the textual output of that attribute.

Name Required Type Default Description
resultList yes String May contain "showAll" or an object.

Examples:

{
    "resultList": "showAll"
}
{
    "resultList": {
        "schulname": "School name",
        "abschluss": "Degree"
    }
}

Datatypes.RequestConfig🔗

Information about the WFS service that is supposed to be requested. Either layerId or restLayerId need to be present. If layerId is chosen, the layer needs to be configured in the config.json. If both are defined restLayerId is used.

Name Required Type Default Description
gazetteer no Gazetteer Declares whether the used WFS service is a WFS-G, which needs to be parsed differently.
layerId no String Id of the WFS service that should be queried. Information is fetched from services.json.
likeFilter no LikeFilter {"wildCard": "*", "singleChar": "#", "escape": "!"} The configuration of the service for the like filter.
maxFeatures no Number/String 8 Maximum amount of features that are supposed to be returned from the service. Alternatively, the String showAll can be assigned to maxFeatures to load all features.
restLayerId no String Id of the WFS service that should be queried. Information is fetched from rest-services.json.
storedQueryId no String The id of the Stored Query of the WFS that should be used to query the service. If this field is set, it is assumed that a WFS@2.0.0 is used.

Example

{
    "requestConfig": {
        "restLayerId": "1234",
        "storedQueryId": "Flurstuecke"
    }
}

Datatypes.RequestConfig.LikeFilter🔗

Values inside a filter for a WFS service can be compared with an equal or a like. If the comparison should be with a like then the filter needs additional properties. These may vary in value and property definition. For the documentation, it is assumed that the properties are called wildCard, singleChar and escapeChar; variations like e.g. single and escape are possible and need to be configured in line with the service. All key-value pairs are used in the request as given.

Name Required Type Default Description
wildCard yes String "*" The wildcard value for the like filter.
singleChar yes String "#" The single character value for the like filter.
escapeChar yes String "!" The escape character value for the like filter.

Example

In this example case, the key for escapeChar deviates.

{
    "wildCard": "*",
    "singleChar": "#",
    "escape": "!"
}

Datatypes.RequestConfig.Gazetteer🔗

Parameters that are exclusively needed for using a WFS-G (Gazetteer).

Name Required Type Default Description
namespaces yes String/String[] The namespaces need to be provided.
memberSuffix yes enum["member","featureMember"] The suffix of the featureType needs to be specified.

Example

{
    "gazetteer": {
        "namespaces": [
            "http://www.adv-online.de/namespaces/adv/dog",
            "http://geodienste.hamburg.de/dog_gages/services/wfs_dog?SERVICE=WFS&VERSION=2.0.0&REQUEST=DescribeFeatureType&OUTPUTFORMAT=application/gml+xml;+version=3.2&TYPENAME=dog:Flurstueckskoordinaten&NAMESPACES=xmlns(dog,http://www.adv-online.de/namespaces/adv/dog)"
        ],
        "memberSuffix": "memberSuffix"
    }
}

Datatypes.Suggestions🔗

Configuration for the suggestions of the user input.

Name Required Type Default Description
featureType no String If given, the query will be sent with this featureType instead of the one configured for the service itself. Only usable if the layer was defined in the services.json.
length no Number 3 The query is triggered when the length of the input is at least as long as this parameter.