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

Example

"baselayerSwitcher": {
      "active": true,
      "activatedExpandable": false
    }

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.
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"
},

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
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",
    "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.

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
        }
    },
    "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)
enabled no Boolean true False if coloredHighlighting3D is disabled.

Example Array

"coloredHighlighting3D": {
    "enabled": true,
    "color": [0, 255, 0, 255]
}

Example Cesium.Color

"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

Example

{
    "camera": {
        "altitude": 127,
        "heading": -1.2502079000000208,
        "tilt": 45
    },
    "fog": {
        "enabled": true
    },
    "fxaa": true,
    "globe": {
        "enableLighting": true
    },
    "maximumScreenSpaceError": 2,
    "tileCacheSize": 20,
}

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 Camera's initial height in meters
heading no Number Camera's initial heading in radians
tilt no Number Camera's initial tile in radians

Example

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

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.

Example:

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

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_vue/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 nein Number[] [565874, 5934140] Die initiale Zentrumskoordinate.
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.

Example

"mouseHover": {
    "numFeaturesToShow": 1,
    "infoText": "Exampletext"
},

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.
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.
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.
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.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".
requestType no enum["POST", "GET"] "POST" Request type
responseEntryPath no String "" Response JSON attribute path to found features.
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",
    "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".
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".
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
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",
            "icon": "bi-record-circle"
        },
        {
            "name": "Adresse",
            "icon": "bi-house-door-fill"
        },
        {
            "name": "Straßenname",
            "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".
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".
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.
type yes String "topicTree" Search interface type. Defines which search interface is configured.

Example

{
    "type": "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.
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².
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.

portalConfig.menu.sections.modules.about🔗

This module displays specific portal information like description, Masterportal version, Metadata.

Name Verpflichtend Typ Default Beschreibung
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 no String "about" The type of the module. Defines which module is configured.
abstractText no String "" Description of the portal
contact no String null Metadata contact information
cswUrl no String "../../src/assets/img/Logo_Masterportal.svg" Metadata URL
logoLink no String "https://masterportal.org" Logo link
logoText no String "Masterportallogo" Text if logo is not shown
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 "" Metadata title
version no String "" Version information of the masterportal
versionLink no String "https://bitbucket.org/geowerkstatt-hamburg/masterportal/downloads/" Link to the masterportal 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" Text for data privacy section
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
Example
{
    "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"
}

portalConfig.menu.sections.modules.addWMS🔗

The module allows for adding additional WMS layers via a provided URL.

Name Required Type Default Description
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.
type no String "addWMS" The type of the module. Defines which module is configured.

Example

{
    "icon": "bi-cloud-plus",
    "name": "common:modules.addWMS.name",
    "type": "addWMS"
}

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 and ensures complete layer updates before allowing swiper movement for accurate comparison.

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 explanations[] 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 Verpflichtend Typ Default Beschreibung
type nein String "copyrightConstraints" The type of the module. Defines which module is added.
Example
{
    "type": "copyrightConstraints"
}

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.
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"}
    }
}

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 Payload that is transferred to the action.

Example

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

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.
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 /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.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(❗) layers in a table. All visible vector layers from the map are displayed in the first tab. 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 highlighted 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.

Example

"featureLister": {
    "name": "List",
    "icon": "bi-list",
    "maxFeatures": 10,
    "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.

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.
layerSelectorVisible no Boolean true To display a selector for the layers. Put to false to show without selector.
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 If layerSelectorVisible true, wether one can open multiple sections of the selector at the 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.
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.

Example

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

{
    "type": "filter",
    "icon": "bi-funnel-fill",
    "layerSelectorVisible": false,
    "geometrySelectorOptions": {
        "visible": true
    },
    "closeGfi": false,
    "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 Verpflichtend Typ Default Beschreibung
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.
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 - only if layerSelectorVisible is set to true. 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 or no layerSelectorVisible is set to false. 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.
labelFilterButton no String "common:modules.tools.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.
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 only if layerSelectorVisible is true and the selector is closed. 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.
snippetTags no Boolean true After filtering the current setting is displayed as tags. Set to false to turn of this feature.
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 (if layerSelectorVisible true). 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.
initialStartupReset no Boolean false If the parameter is set to true, a button appears to reset the filter. Please note that this prevents re-adjustment and is therefore only recommended for filter configurations with a Datatypes.Snippets.Children.

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",
    "snippetTags": true,
    "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 (if layerSelectorVisible true). Can be a translation key also.

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",
      "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": "translate#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
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.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!

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

Name Required Type Default Description
additionalLayers nein 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.
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.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.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

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
        }
    }
}

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.
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",
        "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.
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

Example

{
    "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
        }
    }
}

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|Expert| |----|--------|----|-------|-----------| |month|no|String||month|false| |day|no|String||day|false| |hour|no|String||hour|false| |minute|no|String||minute|false|

Example

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

portalConfig.menu.sections.modules.statisticDashboard🔗
Name Required Type Default Description
name yes String "translate#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"
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 {"label": "Blau", "baseColor": [8, 81, 156]} Available options for color palettes
downloadFilename no String "Statistic Dashboard Download" The filename of the exported csv file.

Example

{
    "name": "translate#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 Verpflichtend Typ Default Beschreibung
label yes String The displayed name of the color palette.
baseColor yes Number[] The base color as an rgb array

Beispiel

[
        {
            "label": "Blau",
            "baseColor": [8, 81, 156]
        }
]

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 Verpflichtend Typ Default Beschreibung
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.

Example

{
    "requestConfig": {
        "layerId": "1234"
    },
    "resultList": {
        "schulname": "School name",
        "abschluss": "Degree"
    },
    "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.

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
        }
    ]
}

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.
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.

Beispiel

"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 Typ Default Description
alias yes String Displayed name of the link in desktop-view.
alias_mobil 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.

Beispiel

{
    "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.

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. Only for the tree.type auto.
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.
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 (Geo-Online).
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

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 String If active:true then a search within the configured searchInterfaces and searchCategory is possible.
buttonTitle no String Sets the button title with customized text.

Beispiel

{
    "tree": {
        "addLayerButton": {
            "active": true,
            "buttonTitle": "Add Layers",
            "searchBar": {
            "active": true,
            "searchInterfaceInstanceId": "elasticSearch_0",
            "searchCategory": "Thema (externe Fachdaten)"
        }
    }
}

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:tree.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
elements no elements[] Next layer with layers or folders under the type folder.
name no String "" Layer or folder 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",
        "elements": [
                {
                "name": "Folder level 2",
                "type": "folder",
                "elements": [
                        {
                            "id": "2431"
                        },
                        {
                            "id": "2430"
                        },
                        {
                            "id": "2429"
                        },
                        {
                            "name": "Folder level 3",
                            "type": "folder",
                            "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
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[] Layer ID(s). Resolved using the services.json file. Please mind that the given IDs MUST refer to the same URL, that is, use the same service. When configuring an array of IDs, setting minScale and maxScale of each layer is required to be in the services.json. 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"
        }
    ]
}

Example with an array of IDs

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

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 Only for type 'VectorTile'. Path to the image to be previewed.
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
    }

layerConfig.elements.layers.Group🔗

A group layer is created that contains all layers of the specified ids. The values for minScale and maxScale are determined from all group layers. Baselayer: It is important here that the specified ids address the same URL, i.e. use the same service.

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.
styleId no String Id that defines the style. Id is resolved in the style.json. If filled, then all grouped layers receive this style.

Example

 {
    "id": [ "20501", "20502", "20503", "20504" ],
    "name": "Gruppe Freizeitrouten und Radfernwege",
    "styleId": "4515"
}


layerConfig.elements.layers.Raster🔗

Raster layer typical attributes are listed here. Raster layers are of type StaticImage, 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.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=279&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🔗

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.
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 set to list, a list is displayed instead of a dropdown box. 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 with display: "list" 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).
subtitle no String[]/String[][] Only for snippet type chart. Can be set to display any combination of text and data as a subtitle of the chart.
tooltipUnit no String Only for snippet type chart. Adds unit to numbers shown in tooltip.
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. 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.
universalSearch no UniversalSearch Only for Snippet-Typ featureInfo: The filtered Value can be searched for in website
beautifiedAttrName no BeautifiedAttrName Only for Snippet-Typ featureInfo: The attribute name could be beautified.
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.
chartConfig yes ChartConfig Only for snippet type 'chart' in combination with 'service' (see example): The configuration for the chart. All configuration options (previously only "type: bar") of Chart.js are supported (see: https://www.chartjs.org/docs/latest/configuration/). The 'featureAttributes' parameter must also be specified. The parameter specifies the attributes behind which the data to be displayed is located (see example).
alternativeTextForEmptyChart nein String Alternative text for snippet type chart that can be displayed instead of a chart.
infoText no String false For type chart only: An Info text.

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",
    "display": "list",
    "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 feature info snippet. Displays all values of the configured attribute names attrName of all filtered features in the filter.

{
    "title": "Steckbrief",
    "attrName": ["tierartengruppe", "deutscher_artname", "artname", "rote_liste_d", "rote_liste_hh"],
    "type": "featureInfo",
    "universalSearch": {
      "attrName": "Wissenschaftlicher Name",
      "prefix": "https://www.google.com/search?q="
    },
    "beautifiedAttrName": {
      "tierartengruppe": "Tierartengruppe",
      "familie": "Familie"
    }
}

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",
}

Example

Example of a chart snippet. Queries the features from the configured "service" and displays the data of the configured "featureAttributes" in a bar chart.

{
    "type": "chart",
    "title": "Phänogramm",
    "subtitle": ["Anzahl Beobachtungen = ", ["anzahl_beobachtungen"]],
    "tooltipUnit": " %",
    "chartConfig": {
        "type": "bar",
        "data": {
            "datasets": [{
                "label": "Label",
                "backgroundColor": "rgba(214, 227, 255, 0.8)",
                "featureAttributes": ["januar_1", "februar_1", "maerz_1", "april_1", "mai_1", "juni_1", "juli_1", "august_1", "september_1", "oktober_1", "november_1", "dezember_1"]
            },
            {
                "label": "Label 2",
                "backgroundColor": "rgba(214, 227, 255, 0.8)",
                "featureAttributes": ["januar_2", "februar_2", "maerz_2", "april_2", "mai_2", "juni_2", "juli_2", "august_2", "september_2", "oktober_2", "november_2", "dezember_2"]
            }
        ],
        "labels": ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
        },
        "options": {
            "plugins": {
                "legend": {
                    "display": false
                },
                "subtitle": {
                  "display": true,
                  "position": "bottom",
                }
            }
        }
    },
    "service": {
        "extern": true,
        "type": "WFS",
        "url": "https://qs-geodienste.hamburg.de/HH_WFS_verbreitung_tiere",
        "typename": "verbreitung_tiere_eindeutige_liste",
        "featureNS": "https://registry.gdi-de.org/id/de.hh.up",
        "featureTypes": ["verbreitung_tiere_eindeutige_liste"],
        "filter": {
            "attrName": "artname",
            "operator": "EQ"
        }
    }
}

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.

In case of using parent-child relationships, we recommend setting snippetTags to false. Multi-dimensional nesting (grandparent, parent, child) is not currently provided.

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 Typ 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|Typ|Default|Description|Expert| |----|-------------|---|-------|------------|------| |collection|yes|String||The collection that will be loaded. Only for OAF|false| |type|yes|String||The type of service.|false| |typename|yes|String||The feature type that will be loaded. Only for WFS|false| |url|yes|String||The service url.|false|

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.ChartConfig🔗

An object that describes a chart. Click here for more information.

Example

The top level structure of Chart.js configuration:

{
    "chartConfig": {
        "type": 'bar',
        "data": {},
        "options": {},
        "plugins": []
    }
}

Datatypes.Snippets.LocaleCompareParams🔗

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

Example String

"localeCompareParams": "de"

Object

Name Required Typ 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 Typ 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.Snippets.UniversalSearch🔗

An object for configuring a universal search of value

Object

Name Required Typ Default Description
attrName yes String The attribute Name
prefix yes String The Website as Prefix for searching

Example

{
    "attrName": "Wissenschaftlicher Name",
    "prefix": "https://www.ecosia.org/search?q="
}

Datatypes.Snippets.BeautifiedAttrName🔗

An object for configuring beautified names for attributes in stack

Object

Name Required Typ Default Description
attrName yes String The attribute Name

Example

{
    "attrName": "beautified Name"
}

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.

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.

Datatypes.Explanations🔗

Can contain an array with explanations of the coordinate reference systems from which a list is created.