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🔗
The section portalConfig controls the following properties:
- Menu entries in main menu and availability as well as order of modules (mainMenu)
- Configuration of the map and elements placed on it (map)
- Footer configuration (portalFooter)
- Menu entries in secondary menu and availability as well as order of modules (secondaryMenu)
- 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
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
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
Example using type boolean backForward
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
Example fullScreen as Boolean
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
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
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
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
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
Example tiltView as boolean
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
Example totalView as Boolean
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
Example zoom as Boolean
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.
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
Example Cesium.Color
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
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
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
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
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
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
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
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
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
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
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. | |
no | 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 |
{
"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
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 |
---|---|---|---|---|
no | String | The email address. | ||
name | no | String | The display name. |
Example
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
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. |
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
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
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
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
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
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
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
.
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
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
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). |
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
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
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. |
"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:
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
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"}
}
}
{
"geosearch": {
"minChars": 3,
"limit": 10,
"type": "SPECIALWFS",
"serviceId": "specialWfs_geosearch",
"typeName": "ms:strasse_nr",
"propertyNames": [
"ms:LABEL_TEXT"
],
"geometryName": "ms:msGeometry"
}
}
{
"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
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
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
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
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
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
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
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
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:
- Layers containing background maps (baselayer)
- 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🔗
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.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.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
Example subjectlayer
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
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
Example WMS
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
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
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
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
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
Datatypes.Fill🔗
Name | Required | Type | Default | Description |
---|---|---|---|---|
color | no | Float[] | Possible setting: color (RGBA) |
Example
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) |
Datatypes.Image🔗
Name | Required | Type | Default | Description |
---|---|---|---|---|
scale | no | Integer | Possible setting: scale |
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
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:
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
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
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
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
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
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
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:
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
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:
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
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.
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.