Back to the Masterportal documentation.

If this site isn´t displayed correctly please use this link: alternative config.json documentation

Table of Contents


config.json

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 Themenconfig

{
   "Portalconfig": {},
   "Themenconfig": {}
}

Since the portals original language was German, some technical keys are still in German.


Portalconfig

The section Portalconfig controls the following properties:

  1. Title & logo (portalTitle)
  2. Type of topic selection (treeType)
  3. Initial map view settings (mapView)
  4. Map view buttons and interactions (controls)
  5. Menu entries and availability as well as order of tools (menu)
  6. Type and properties of used search services (searchBar)
  7. Deletability of topics (layersRemovable)
  8. Maximum loading time (loaderOverlayMaxWait)

The configuration options listed in the following table exist:

Name Required Type Default Description Expert
portalTitle no portalTitle The portal's title and further elements to be shown in the menu bar. false
treeType no enum["light","default","custom"] "light" Decides the type of topic selection tree. You may choose between "light" (simple list), "default" (FHH-Atlas), and "custom" (layer list defined via JSON file). false
singleBaselayer no Boolean false Specifies whether only one base layer may be active at any time. Only usable in combination with treeType "custom". false
Baumtyp no enum["light","default","custom"] "light" Deprecated in 3.0.0. Please use "treeType" instead. false
mapView no mapView Defines the initial map view and a background shown when no layer is selected. false
controls no controls Allows setting which interactions are active in the map. false
menu no menu Menu entries and their order are configured in this entry. The order of tools corresponds to the order in the object specifying them; see Tools. false
searchBar no searchBar The search bar allows requesting information from various search services at once. false
layersRemovable no Boolean false Defines whether layers may be removed from a portal during its run-time. false
quickHelp no quickHelp Configuration of new and manipulation of existing QuickHelp windows. false
tree no tree Configuration of menu tree. false
layerInformation no layerInformation Decides if to show individual attribute in Meta data of layer information false
loaderOverlayMaxWait no Integer 25000 Defines the maximum loading time for showing Loader Overlays. false

Portalconfig.searchBar

Search bar configuration.

Name Required Type Default Description Expert
searchResultOrder no String[] ["common:modules.searchbar.type.address", "common:modules.searchbar.type.street", "common:modules.searchbar.type.parcel", "common:modules.searchbar.type.location", "common:modules.searchbar.type.district", "common:modules.searchbar.type.topic", "common:modules.searchbar.type.subject"] Configuration of order of categories of displayed search results. The keys should be used from translation data. false
bkg no bkg BKG search service configuration. false
gazetteer no gazetteer Gazetteer search service configuration. false
gdi no gdi GDI (elastic) search service configuration. _Deprecated in 3.0.0. Please use elasticSearch instead. false
elasticSearch no elasticSearch Elastic search service configuration. false
osm no osm OpenStreetMap (OSM) search service configuration. false
komoot no komoot Komoot Photon search service configuration. false
locationFinder no locationFinder LocationFinder search service configuration. false
placeholder no String "Suche" Input text field placeholder shown when no input has been given yet. false
recommendedListLength no Integer 5 Maximum amount of entries in the suggestion list. false
quickHelp no Boolean false Deprecated in the next major-release. Defines whether the QuickHelp feature is offered for the search bar. false
specialWFS no specialWFS specialWFS search service configuration. false
tree no tree Topic selection tree search configuration. false
visibleWFS no visibleWFS Visible WFS layer search configuration. false
visibleVector no visibleVector Visible vector layer search configuration. false
zoomLevel no Integer On picking a search result, this is the maximum zoom level to be used on zooming to the chosen feature. false
sortByName no Boolean true Defines whether search results are to be sorted alphanumerically. false
selectRandomHits no Boolean true Is set true, the results are chosen randomly when the amount of hits exceeds recommendedListLength. If set false, the list of hits is cut when reaching recomendedListLength. This may result in only showing results of the service that first returned. false

Portalconfig.searchBar.bkg

BKG search service configuration.

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 Expert
epsg no String "EPSG:25832" EPSG code of the coordinate reference system to use. false
extent no Extent [454591, 5809000, 700000, 6075769] Coordinate extent in which search algorithms should return. false
filter no String "filter=(typ:*)" Filter string sent to the BKG interface. false
geosearchServiceId yes String Search service id. Resolved using the rest-services.json file. false
minChars no Integer 3 Deprecated in 3.0.0. Please use "minCharacters". false
minCharacters no Integer 3 Minimum amount of characters required to start a search. false
score no Number 0.6 Score defining the minimum quality of search results. false
suggestCount no Integer 20 Suggestion amount. false
suggestServiceId yes String Suggestion service id. Resolved using the rest-services.json file. false
zoomToResult no Boolean false Deprecated in 3.0.0. Please use "zoomToResultOnHover" or "zoomToResultOnClick". Defines whether a feature is zoomed to when hovering a result list entry. false
zoomToResultOnHover no Boolean false Defines whether an address is zoomed to when hovering a result list entry. false
zoomToResultOnClick no Boolean true Defines whether an address is zoomed to when clicking a result list entry. false
zoomLevel no Number 7 Defines the zoom level to use on zooming to a result. false

Example

{
    "bkg": {
        "minCharacters": 3,
        "suggestServiceId": "4",
        "geosearchServiceId": "5",
        "extent": [454591, 5809000, 700000, 6075769],
        "suggestCount": 10,
        "epsg": "EPSG:25832",
        "filter": "filter=(typ:*)",
        "score": 0.6,
        "zoomToResultOnHover": false,
        "zoomToResultOnClick": true,
        "zoomLevel": 10
    }
}

Portalconfig.searchBar.osm

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 Expert
minChars no Number 3 Minimum amount of characters required to start a search. false
serviceId yes String OSM search service id. Resolved using the rest-services.json file. false
limit no Number 50 Maximum amount of requested unfiltered results. false
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. false
classes no string [] May contain the classes to search for. false

Example

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

Portalconfig.searchBar.komoot

Search with Komoot Photon.

Name Verpflichtend Typ Default Beschreibung Expert
minChars no Number 3 Minimum amount of characters required to start a search. false
serviceId yes String Komoot search service id. Resolved using the rest-services.json file. false
limit no Number 10 Maximum amount of requested unfiltered results. false
lang no string "de" Language of the Komoot Search. Effects language specific locationnames (e.g. Countrynames) aus. false
lat no Number Latitude of the center for the search. false
lon no Number Longtitude of the center for the search. false
bbox no string Boundingbox of the search. false
osm_tag no string Filtering of OSM Tags (see https://github.com/komoot/photon#filter-results-by-tags-and-values). false
searchOnEnter no Boolean false If searchOnEnter is set to true, searches will only start on clicking the search icon or pressing enter. false

Example

#!json

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

Portalconfig.searchBar.locationFinder

Search configuration to use a ESRI CH LocationFinder.

Name Required Type Default Description Expert
minChars no Number 3 Minimum amount of characters required to start a search. false
incrementalSearch no Boolean true Defines whether autocomplete is enabled. If incrementalSearch is set to false, searches will only start on clicking the search icon or pressing enter, since there's a quota on requests. false
serviceId yes String Service id. Resolved using the rest-services.json file. false
classes no LocationFinderClass May contain classes (with properties) to use in searches. If nothing is specified, all classes are considered valid. false
useProxy no Boolean false Deprecated in the next major release. GDI-DE recommends setting CORS headers on the required services instead of using proxies. Defines whether a service URL should be requested via proxy. For this, dots in the URL are replaced with underscores. false
spatialReference no String Coordinate reference system to use for requests. By default, the value in Portalconfig.mapView.epsg is used. false
Portalconfig.searchBar.locationFinder.LocationFinderClass

Definition of classes to be taken into account for results.

Name Required Type Default Description Expert
name yes String Class name false
icon no String "bi-signpost-2-fill" Class visualization by a icon false
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. false
zoomLevel no Integer Zoom level which is applied to the result view false

Example

{
    "locationFinder": {
        "serviceId": "10",
        "classes": [
            {
                "name": "busstop",
                "icon": "bi-record-circle"
            },
            {
                "name": "address",
                "icon": "bi-house-door-fill",
                "zoomLevel": 5
            },
            {
                "name": "streetname",
                "zoom": "bbox"
            }
        ]
    }
}

Portalconfig.searchBar.gazetteer

Gazetteer search service configuration.

This requires a backend!

A WFS's Stored Query is requested with predefined parameters.

Name Required Type Default Description Expert
minChars no Integer 3 Minimum amount of characters required to start a search. false
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". false
searchDistricts no Boolean false Defines whether district search is active. false
searchHouseNumbers no Boolean false Defines whether house numbers should be searched for. Requires searchStreets to be set to true, too. false
searchParcels no Boolean false Defines whether parcels search is active. false
searchStreetKey no Boolean false Defines whether streets should be searched for by key. false
searchStreet no Boolean false Defines whether street search is active. Precondition to set searchHouseNumbers to true. false
serviceId yes String Search service id. Resolved using the rest-services.json file. false
showGeographicIdentifier no Boolean false Specifies whether the attribute geographicIdentifier should be used to display the search result. false

Example

{
    "gazetteer": {
        "minChars": 3,
        "serviceId": "6",
        "searchStreets": true,
        "searchHouseNumbers": true,
        "searchDistricts": true,
        "searchParcels": true,
        "searchStreetKey": true,
        "showGeographicIdentifier": false
    }
}

Portalconfig.searchBar.gdi

GFI search service configuration.

Deprecated in 3.0.0. Please use elasticSearch instead.

Name Required Type Default Description Expert
minChars no Integer 3 Minimum amount of characters required to start a search. false
serviceId yes String Search service id. Resolved using the rest-services.json file. false
sortByName no Boolean false Defines whether search results are to be sorted alphanumerically. false
queryObject yes queryObject Query object read by the Elasticsearch model. false

Example

{
    "gdi": {
        "minChars": 3,
        "serviceId": "elastic",
        "sortByName": false,
        "queryObject": {
            "id": "query",
            "params": {
                "query_string": "%%searchString%%"
            }
        }
    }
}

Portalconfig.searchBar.gdi.queryObject

Todo.

Name Required Type Default Description Expert
id yes String "" Todo false
params yes params Elasticsearch parameter object. false

Portalconfig.searchBar.gdi.queryObject.params

Todo

Name Required Type Default Description Expert
query_string yes String "%%searchString%%" Todo false

Portalconfig.searchBar.elasticSearch

Elasticsearch service configuration.

Name Required Type Default Description Expert
minChars no Integer 3 Minimum amount of characters required to start a search. false
serviceId yes String Search service id. Resolved using the rest-services.json file. false
type no enum["POST", "GET"] "POST" Request type. false
searchStringAttribute no String "searchString" Search string attribute name for payload object. false
responseEntryPath no String "" Response JSON attribute path to found features. false
triggerEvent no triggerEvent {} Radio event triggered on mouse hover and click. false
hitMap no hitMap Object mapping result object attributes to keys. true
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. false
hitIcon no String "bi-signpost-2-fill" CSS icon class of search results, shown before the result name. false
useProxy no Boolean false Defines whether the URL should be proxied. false

As an additional property, you may add payload. It is not required, and matches the CustomObject 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 CustomObject is not yet supported.

Example

{
    "elasticSearch": {
        "minChars": 3,
        "serviceId": "elastic_hh",
        "type": "GET",
        "payload": {
            "id": "query",
            "params": {
                "query_string": ""
            }
        },
        "searchStringAttribute": "query_string",
        "responseEntryPath": "hits.hits",
        "triggerEvent": {
            "channel": "Parser",
            "event": "addGdiLayer"
        },
        "hitMap": {
            "name": "_source.name",
            "id": "_source.id",
            "source": "_source"
        },
        "hitType": "common:modules.searchbar.type.subject",
        "hitIcon": "bi-list-ul"
    }
}

Portalconfig.searchBar.elasticSearch.hitMap

Object mapping result object attributes to keys.

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

Portalconfig.searchBar.elasticSearch.triggerEvent

Radio event triggered on mouse hover and click.

Name Required Type Default Description Expert
channel yes String Channel addressed on mouse hover and click. The hit from the recommendedList will be sent as payload. false
event yes String Triggered event. false

Portalconfig.searchBar.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 Expert
minChars no Integer 3 Minimum amount of characters required to start a search. false
icon no String "bi-house-fill" Default icon used in the suggestion list. Overwritable by a definition. false
maxFeatures no Integer 20 Maximum amount of features returned. Overwritable by a definition. false
timeout no Integer 6000 Service request timeout in ms. false
definitions no definition[] Special WFS search definitions. false

Example

{
    "specialWFS": {
        "minChars": 5,
        "timeout": 10000,
        "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": "https://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.searchBar.specialWFS.definition

SpecialWFS search definition configuration.

Name Required Type Default Description Expert
url no String WFS URL. Depending on your proxy configuration, the relative URL from the portal server must be given. false
name no String Category name displayed in the suggestion list. false
icon no String "bi-house-fill" CSS icon class of search results, shown before the result name. false
typeName no String The name of the WFS layer to be requested. false
propertyNames no String[] Array of attribute names to be searched. false
geometryName no String "app:geom" Geometry attribute name required for zoom functionality. false
maxFeatures no Integer 20 Maximum amount of features to be returned. false
namespaces no String XML name spaces to request propertyNames or geometryName. (xmlns:wfs, xmlns:ogc, and xmlns:gml are always used.) false
useProxy no Boolean false Deprecated in the next major release. GDI-DE recommends setting CORS headers on the required services instead of using proxies. Defines whether a service URL should be requested via proxy. For this, dots in the URL are replaced with underscores. false
data no String Deprecated in 3.0.0. Filter parameter for WFS requests. false

Example

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

Portalconfig.searchBar.tree

Searching all topic selection tree layers.

Name Required Type Default Description Expert
minChars no Integer 3 Minimum amount of characters required to start a search. false
searchType no String "metadata" Decides whether the metadata or the name of a layer should be searched. Possible values: "metadata" and "name" false

Example

{
    "tree": {
        "minChars": 5,
        "searchType": "name"
    }
}

Portalconfig.searchBar.visibleWFS

Visible WFS search configuration. Deprecated in 3.0.0. Please use visibleVector instead.

Name Required Type Default Description Expert
minChars no Integer 3 Minimum amount of characters required to start a search. false

Example

{
    "visibleWFS": {
        "minChars": 3
    }
}

Portalconfig.searchBar.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 Expert
minChars no Integer 3 Minimum amount of characters required to start a search. false
layerTypes no enum["WFS", "GeoJSON"] ["WFS"] Vector layer types to be used. true
gfiOnClick no Boolean false Opens the GetFeatureInfo (gfi) window on clicking a search result. false

Example

{
    "visibleVector": {
        "minChars": 3,
        "layerTypes": ["WFS", "GeoJSON"]
    }
}

Portalconfig.tree

Configuration of the menu tree.

Name Required Type Default Description Expert
highlightedFeatures no highlightedFeatures Configuration in addition to feature highlighting. false
showScaleTooltip no Boolean false Flag whether the scale range is displayed in the layer tooltip in addition to the name of the corresponding layer. false

Example

#!json
"tree":{
    "highlightedFeatures": {
        "active": true,
        "layerName": "common:tree.selectedFeatures"
    },
    "showScaleTooltip": true
},

Portalconfig.tree.highlightedFeatures

Configuration in addition to highlighting features. If features are highlighted with the "List" or "Select Features" tool 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 Expert
active no Boolean false Indicates whether this feature is active. false
layerName no String "common:tree.selectedFeatures" Name of the created layer with the highlighted features. The name also contains the name of the tool that was used. true

Example

#!json
"highlightedFeatures": {
    "active": false,
    "layerName": "common:tree.selectedFeatures"
},

Portalconfig.layerInformation

Configuration of layerInformation.

Name Required Type Default Description Expert
showMetaDataRevision no boolean true Decides if to show "Letzte Änderung" in Meta data of layer information false

Example

#!json
"layerInformation":{
    "showMetaDataRevision": true
},

Portalconfig.controls

Name Required Type Default Description Expert
attributions no Boolean/attributions false Additional layer information to be shown in the portal. false
fullScreen no Boolean 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. false
mousePosition no Boolean false Display mouse pointer coordinates. false
orientation no orientation The orientation control uses the browser's geolocation feature to determine the user's coordinates. false
zoom no Boolean false Defines whether zoom buttons should be displayed. false
overviewmap no overviewMap false Deprecated in 3.0.0. Please use overviewMap instead. false
overviewMap no overviewMap false Overview map. false
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. See also mapInteractions in config.js.md. false
totalview no totalView false Deprecated in 3.0.0. Please use "totalView" instead. false
totalView no totalView false Offers a button to return to the initial view. false
button3d no Boolean false Defines whether a 3D mode switch button is shown. false
orientation3d no Boolean false Defines whether the 3D mode is to show a navigation element inspired by the classical compass winds. false
freeze no Boolean false Whether a "lock view" button is shown. Within the TABLE style, this element is part of the tool window. false
backforward no backForward false Deprecated in 3.0.0. Please use "backForward" instead. false
backForward no backForward false Shows buttons to jump to previous and next map views. false
startTool no startTool false Displays buttons for the configured tools. These can be used to open and close the respective tools. false

Portalconfig.controls.attributions

The entry attributions may be of type boolean or object. If of type boolean, the flag decides whether available attributions are shown. When of type object, the following attributes may be set:

Name Required Type Default Description Expert
isInitOpenDesktop no Boolean true Defines whether the attributions are open initially in desktop mode. false
isInitOpenMobile no Boolean false Defines whether the attributions are open initially in mobile mode. false

Boolean example

{
    "attributions": true
}

Object example

{
    "attributions": {
        "isInitOpenDesktop": true,
        "isInitOpenMobile": false
    }
}

Portalconfig.controls.orientation

Name Required Type Default Description Expert
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. false
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. false
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]. false
onlyFilteredFeatures no boolean false If 'onlyFilteredFeatures' is true, only features filtered via the filter are taken into account in the poi results display. false

Example using type boolean poiDistances

{
    "orientation": {
        "zoomMode": "once",
        "poiDistances": true
    }
}

Example using type number[] porDistances

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

Portalconfig.controls.overviewMap

The attribute overviewMap may be of type boolean or object. If of type boolean, an overview map is shown with a default configuration. When of type object, the following attributes may be set:

Name Required Type Default Description
resolution no Integer Deprecated in 3.0.0. Defines the overview map resolution. If not set, the map section displayed is changed on zoom automatically.
baselayer no LayerId Deprecated in 3.0.0. Please use layerId instead. Allows using a different layer for the overview map element. The value must be an id from the services.json used in the portal's config.js parameter layerConf.
layerId no LayerId Allows using a different layer for the overview map element. The value must be an id from the services.json used in the portal's config.js parameter layerConf.
isInitOpen no Boolean true Defines whether the overview map is initially closed or opened.
renderIn3d no Boolean false Defines whether the overview map is available in 3D mode.
boxBorderColor no String "#E3E3E3" Sets the border color of mini overview map box.

Example using type object overviewMap

{
    "overviewMap": {
        "resolution": 305.7487246381551,
        "layerId": "452",
        "isInitOpen": false
    }
}

Example using type boolean overviewMap

{
    "overviewMap": true
}

Portalconfig.controls.rotation

The attribute rotation may be of type boolean or object. If of type boolean and value is set to true, the rotation control is just shown when the map rotation is not equal north/0. When of type object, the following attributes may be set:

Name Verpflichtend Typ Default Beschreibung
showAlways no Boolean false If the attribut is set to true the control is shown permanently . Via default it appears only if the map rotation is not equal north/0.

Example using type object rotation

#!json
"rotation": {
    "showAlways": true
}

Example using type boolean rotation

#!json
"rotation": true

Portalconfig.controls.totalView

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 Expert
icon no String "bi-skip-backward-fill" Allows changing the button's icon. false
tableIcon no String "bi-house-door-fill" Allows changing the list item's icon in TABLE style. false

Example using type object totalView

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

Example using type boolean totalView

{
    "totalView": true
}

Portalconfig.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 Expert
iconFor no String Allows changing the icon on the forward button. false
iconBack no String Allows changing the icon on the backwards button. false

Example using type object backForward

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

Example using type boolean backForward

{
    "backForward": true
}

Portalconfig.controls.startTool

The startTool attribute must be of type Object. A button is displayed for each configured tool, which can be used to open and close the respective tool. The requirement is that the tools are also configured under Tools.

Name Verpflichtend Typ Default Beschreibung Expert
tools yes String[] Here you can configure the tools to which a button is to be attached.. false

Example startTool:

#!json
"startTool": {
    "tools": ["selectFeatures", "draw"]
}

Portalconfig.portalTitle

The menu bar allows showing a portal name and portal image if sufficient horizontal space is available. The elements are not shown in mobile mode.

Name Required Type Default Description Expert
title no String "Master" Portal name. false
logo no String Path to an external image file. If no image is set, the title will be shown without an accompanying logo. false
link no String "https://geoinfo.hamburg.de" URL of an external website to link to. false
tooltip no String Deprecated in 3.0.0. Please use toolTip instead. Shown on hovering the portal logo. false
toolTip no String "Landesbetrieb Geoinformation und Vermessung" Shown on hovering the portal logo. false

Example

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

Portalconfig.mapView

Name Required Type Default Description Expert
backgroundImage no String "https://bitbucket.org/geowerkstatt-hamburg/masterportal/src/dev/doc/config.json.md#markdown-header-portalconfigmapview" Path to an alternative background image. false
startCenter no Coordinate [565874, 5934140] Initial center coordinate. false
extent no Extent [510000.0, 5850000.0, 625000.4, 6000000.0] Map extent - map may not be moved outside these boundaries. false
startResolution no Float 15.874991427504629 The initial map resolution from the options element. Used in preference to startZoomLevel. false
resolution no Float 15.874991427504629 Deprecated in 3.0.0 Please use "startResolution". false
startZoomLevel no Integer The initial map zoom level from the options element. If resolutions is set, this is ignored. false
zoomLevel no Integer Deprecated in 3.0.0 Please use "startZoomLevel". false
epsg no String "EPSG:25832" Coordinate reference system EPSG code. The code must be defined as a namedProjection. false
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. false
twoFingerPan no Boolean false Should a 2-Finger-Pan be set on mobile devices instead of a 1-Finger-Pan? false

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],
        "resolution": 15.874991427504629,
        "zoomLevel": 1,
        "epsg": "EPSG:25832"
    }
}

Portalconfig.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 Expert
resolution yes Number Zoom level definition's resolution. false
scale yes Integer Zoom level definition's scale. false
zoomLevel yes Integer Zoom level definition's zoom level. false

mapView option example

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

Portalconfig.quickHelp

For a detailed documentation of the QuickHelp window see the QuickHelp documentation .

Name Required Type Default Description Expert
configs yes configs {"search": true, "tree": true} The configuration for existing as well as new QuickHelp windows. false
{
    "Portalconfig": {
        "quickHelp": {
            "configs": {}
        }
    }
}

Portalconfig.quickHelp.configs

Name Required Type Default Description Expert
search no search true Configuration of the QuickHelp window of the SearchBar. false
tree no tree true Configuration of the QuickHelp window of the topic tree. false
{
    "Portalconfig": {
        "quickHelp": {
            "configs": {
                "search": true,
                "tree": true
            }
        }
    }
}
Portalconfig.quickHelp.configs.search
Name Required Type Default Description Expert
title no String "" The title/heading of the QuickHelp window. false
content no section[] [] The collection of contents or manipulations as an array. false
{
    "Portalconfig": {
        "quickHelp": {
            "configs": {
                "search": {
                    "title": "A new title for this QuickHelp window",
                    "content": []
                }
            }
        }
    }
}
Portalconfig.quickHelp.configs.search.section

A section is an object with a title and a list of paragraphs. A section can be manipulated using "before", "after" and "hide" keywords.

Name Required Type Default Description Expert
title no String "" The title/heading of the section. false
list no paragraph[] [] An array of paragraphs or images of the QuickHelp section. false
before no String A Section Key before which this new section should be hooked. false
after no String A Section Key behind which this new section should be hooked. false
hide no String A Section Key that leads to the hiding/removal of an existing section addressed with the Section Key. false
{
    "Portalconfig": {
        "quickHelp": {
            "configs": {
                "search": {
                    "title": "A new title for this QuickHelp window",
                    "content": [
                        {
                            "title": "Title of the new section",
                            "list": []
                        }
                    ]
                }
            }
        }
    }
}
Portalconfig.quickHelp.configs.search.section.paragraph

A paragraph in the sense of the QuickHelp configuration is an object or string that exactly describes the content at that point. There are two types of paragraph elements.

The paragraph text element

Can also be created as a pure translation key (string) and will then be converted to a paragraph element of type "text/plain". Pure text can also be specified, but then it is mandatory under the text key of the object (pure text is not possible as a pure string).

The paragraph image element

Can also be specified as a plain image name (string), in which case the imgPath configured in config.js would be automatically added as its base path. Configure as an object to specify external images with imgPath as url and imgName as name of the image.

Name Required Type Default Description Expert
text no String "" The text as Translation Key or pure text. false
type no String "text/plain" The text type. If "text/html" is specified, the given text will be rendered as html code. false
imgName no String "" The name of the image to display. false
imgPath no String "" The path to the image if omitted is taken imgPath from config.js. false
{
    "Portalconfig": {
        "quickHelp": {
            "configs": {
                "search": {
                    "title": "A new title for this QuickHelp window",
                    "content": [
                        {
                            "title": "Title of the new section",
                            "list": [
                                {
                                    "text": "This is the first paragraph.",
                                    "type": "text/plain"
                                },
                                {
                                    "imgName": "allgemein.png",
                                    "imgPath": "https://geodienste.hamburg.de/lgv-config/img/"
                                },
                                {
                                    "text": "This is the second <i>paragraph</i> with html content.",
                                    "type": "text/html"
                                }
                            ]
                        },
                        {
                            "after": "generalInfo",
                            "title": "Title of a new section after generalInfo",
                            "list": [
                                {
                                    "text": "This is a paragraph.",
                                    "type": "text/plain"
                                }
                            ]
                        },
                        {"hide": "generalInfo"}
                    ]
                }
            }
        }
    }
}

Portalconfig.quickHelp.configs.tree

Name Required Type Default Description Expert
title no String "" The title/heading of the QuickHelp window. false
content no section[] [] The collection of contents or manipulations as an array. false
{
    "Portalconfig": {
        "quickHelp": {
            "configs": {
                "tree": {
                    "title": "A new title for this QuickHelp window",
                    "content": []
                }
            }
        }
    }
}
Portalconfig.quickHelp.configs.tree.section

A section is an object with a title and a list of paragraphs. A section can be manipulated using "before", "after" and "hide" keywords.

Name Required Type Default Description Expert
title no String "" The title/heading of the section. false
list no paragraph[] [] An array of paragraphs or images of the QuickHelp section. false
before no String A Section Key before which this new section should be hooked. false
after no String A Section Key behind which this new section should be hooked. false
hide no String A Section Key that leads to the hiding/removal of an existing section addressed with the Section Key. false
{
    "Portalconfig": {
        "quickHelp": {
            "configs": {
                "tree": {
                    "title": "A new title for this QuickHelp window",
                    "content": [
                        {
                            "title": "Title of the new section",
                            "list": []
                        }
                    ]
                }
            }
        }
    }
}
Portalconfig.quickHelp.configs.tree.section.paragraph

A paragraph in the sense of the QuickHelp configuration is an object or string that exactly describes the content at that point. There are two types of paragraph elements.

The paragraph text element

Can also be created as a pure translation key (string) and will then be converted to a paragraph element of type "text/plain". Pure text can also be specified, but then it is mandatory under the text key of the object (pure text is not possible as a pure string).

The paragraph image element

Can also be specified as a plain image name (string), in which case the imgPath configured in config.js would be automatically added as its base path. Configure as an object to specify external images with imgPath as url and imgName as name of the image.

Name Required Type Default Description Expert
text no String "" The text as Translation Key or pure text. false
type no String "text/plain" The text type. If "text/html" is specified, the given text will be rendered as html code. false
imgName no String "" The name of the image to display. false
imgPath no String "" The path to the image if omitted is taken imgPath from config.js. false
{
    "Portalconfig": {
        "quickHelp": {
            "configs": {
                "tree": {
                    "title": "A new title for this QuickHelp window",
                    "content": [
                        {
                            "title": "Title of the new section",
                            "list": [
                                {
                                    "text": "This is the first paragraph.",
                                    "type": "text/plain"
                                },
                                {
                                    "imgName": "allgemein.png",
                                    "imgPath": "https://geodienste.hamburg.de/lgv-config/img/"
                                },
                                {
                                    "text": "This is the second <i>paragraph</i> with html content.",
                                    "type": "text/html"
                                }
                            ]
                        },
                        {
                            "before": "generalInfo",
                            "title": "Title of a new section before generalInfo",
                            "list": [
                                {
                                    "text": "This is a paragraph.",
                                    "type": "text/plain"
                                }
                            ]
                        },
                        {"hide": "generalInfo"}
                    ]
                }
            }
        }
    }
}

Portalconfig.menu

This field allows creating and ordering menu entries. The order of tools corresponds to the entry order within the config.json file.

Name Required Type Default Description Expert
ansichten no ansichten Preconfigured map view in 2D and 3D mode false
info no info Menu folder containing tools or staticlinks. false
legend no legend The legend for all visible layers is displayed here. false
login no login Configuration of login with an OIDC server. false
tools no tools Menu folder containing tools. false
tree no tree Representation and position of the topic selection tree. false

Portalconfig.menu.ansichten

Configuration options for map views.

Name Required Type Default Description Expert
name yes String Name of the map views in the menu. false
icon no String "bi-binoculars-fill" Icon of the map views in the menu. false
children no children false Configurations of any number of map views. false

Portalconfig.menu.ansichten.children

Configuration options for map views.

Name Required Type Default Description Expert
view no view Configuration of a single map view. false

Portalconfig.menu.ansichten.children.view

Configuration options for a map view.

Name Required Type Default Description Expert
name yes String Map view name. false
type yes String Type of map view, must always be "viewpoint". false
icon no String icon of the map view in the menu. false
center no Number[] Coordinate at which the map view is centered. false
zoomLevel no Number Zoom level of the map view. false
altitude no Number Altitude of the camera in meters. Used only for map views in 3D mode. false
heading no Number Heading of the camera in Radiant. Used only for map views in 3D mode. false
tilt no Number Tilt of the camera in radians. Used only for map views in 3D mode. false

Example of a map view for 2D and 3D mode

#!json
"ansichten": {
    "name": "translate#common:menu.views.name",
    "icon": "bi-binoculars-fill",
    "children": {
        "view": {
            "name": "translate#common:menu.views.view01",
            "type": "viewpoint",
            "icon": "bi-bullseye",
            "center": [
                564028.7954571751,
                5934555.967867207
            ],
            "zoomLevel": 7.456437968949651,
            "altitude": 272.3469798217454,
            "heading": -0.30858728378862876,
            "tilt": 0.9321791580603296
        }
    }
}

Portalconfig.menu.legend

Legend configuration options.

Name Required Type Default Description Expert
name yes String Legend name. false
icon no String "bi-lightbulb" Legend icon. false
showCollapseAllButton no Boolean false Option to en-/disable all legends. false
showLegend no Boolean false Option to display the legend when starting the portal false
sldVersion no String "" Defines the Styled Layer Descriptor version for the GetLegendGraphic requests, e.g.: "1.1.0" false

Portalconfig.menu.login

Name Required Type Default Description Expert
name yes String The name for the module in the menu. Overwritten when the user is logged in. false
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). false
{
    "Portalconfig": {
        "menu": {
            "login": {
                "name": "translate#common:modules.login.login",
                "icon": "bi-door-open"
            }
        }
    }
}

Portalconfig.menu.info

This is a menu tab typically containing links (staticlinks) to external information sources. It may also contain tools (tools).

Name Required Type Default Description Expert
children no children Menu tab children configuration. false

Portalconfig.menu.info.children

List of tools (tools) or links (staticlinks) appearing in the menu tab info.

Name Required Type Default Description Expert
staticlinks no staticlink[] Configuration object creating links in the menu tab. false

Portalconfig.menu.tree

Hier kÜnnen die Menßeinträge und deren Anordnung konfiguriert werden. Die Reihenfolge der Werkzeuge ergibt sich aus der Reihenfolge in der Config.json.

Name Required Type Default Description Expert
name yes String Name des Themenbaumes. false
icon no String CSS Klasse des icons. false
isInitOpen no Boolean false Gibt an ob der Themenbaum initial geĂśffnet ist. false
quickHelp no Boolean false Deprecated in the next major-release. Defines whether the QuickHelp feature is offered for the search bar. false

Portalconfig.menu.folder

A folder object defined by a name, icon, and its children.

Name Required Type Default Description Expert
name yes String Folder's menu name. false
icon yes String "bi-folder2-open" CSS icon class shown in front of the folder name. false
children no tool/staticlinks Folder child elements. false

Example

{
    "tools": {
        "name": "Tools",
        "icon": "bi-tools",
        "children": {
            "draw": {
                "name": "Draw / Write",
                "icon": "bi-lightbulb"
            }
        }
    }
}

Portalconfig.menu.tools

Name Required Type Default Description Expert
children no children Tool configuration. false

Portalconfig.menu.tools.children

List of all configurable tools. Each tool inherits the properties of tool and can (or must, respectively) provide the defined attributes as mentioned in that definition. Alternatively, also the paths Portalconfig.menu.info, Portalconfig.menu.simulation or Portalconfig.menu.utilities can be used to hold tool configs.

Name Required Type Default Description Expert
addWMS no addWMS This tool 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". Using this tool is only compatible with the treeType "custom" or "default". true
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. If the portal's treeType is configured to be "custom", only layers active at tool opening time are available for comparison. false
compareFeatures no compareFeatures Offers a comparison option for vector features. The getFeatureInfo (GFI) window will offer a clickable star symbol to put elements on the comparison list. Works when used together with the GFI theme Default. false
contact no contact The contact form allows users to send messages to a configured mail address. For example, this may be used to allow users to submit errors and suggestions. false
coord no coord Deprecated in 3.0.0. Please use supplyCoord instead. Tool to read coordinates on mouse click. When clicking once, the coordinates in the view are frozen and can be copied on clicking the displaying input elements to the clipboard, i.e. you can use them in another document/chat/mail/... with Strg+V. false
coordToolkit no coordToolkit Coordinate query: Tool to read coordinates on mouse click. When clicking once, the coordinates in the view are frozen and can be copied on clicking the displaying input elements to the clipboard, i.e. you can use them in another document/chat/mail/... with Strg+V. Coordinate search:search for coordinates with switchable coordinate reference system. The tool will zoom to any given coordinate and set a marker on it. The coordinate systems are obtained from config.js. false
draw no draw 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. false
extendedFilter no extendedFilter Deprecated in 3.0.0. Please use "filter" instead. Dynamic filtering of WFS features. This requires an extendedFilter configuration on the WFS layer object. false
featureLister no featureLister Lists all features of a vector layer and highlights the feature over whose name the mouse is located. false
fileImport no fileImport Import KML, GeoJSON, and GPX files with this tool. false
filter no filter Configuration for an advanced filter for WFS vector layers. false
gfi no gfi 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. false
kmlimport no kmlimport Deprecated in 3.0.0. Please use fileImport instead. false
layerClusterToggler no layerClusterToggler This tool allows a cluster layers to be active and deactive together. false
layerSlider no layerSlider The layerSlider tool allows showing arbitrary services in order. This can e.g. be used to show aerial footage from multiple years in succession. false
measure no measure Allows measuring areas and distances in the units m/km/nm resp. m²/ha/km². false
modeler3D no measure Allows importing 3D models in .gltf, .dae, .obj formats and drawing extrudable 3D polygons. false
parcelSearch no parcelSearch Deprecated in the next major release. Please use wfsSearch instead. The parcel search tool allows searching for parcels by district and parcel number. Many German administrative units feature a tripartite order, hence the tool offers searching by "Gemarkung" (district), "Flur" (parcel) (not used in Hamburg), and "FlurstĂźck" (literally "parcel piece"). false
print no print Printing module that can be used to export the map's current view as PDF. false
routing no routing Routing module to create routes and isochrones. false
saveSelection no saveSelection Tool that allows saving the 2D map's current state as sharable URL. This will list all currently visible layers in order, transparency, and visibility, as well as saving the center coordinate. false
scaleSwitcher no scaleSwitcher Tool that allows changing the map's current scale. false
searchByCoord no searchByCoord Deprecated in 3.0.0. Please use "coordToolkit" instead. Coordinate search with switchable coordinate reference system. The tool will zoom to any given coordinate and set a marker on it. false
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. false
shadow no shadow Configuration object for the 3D mode shadow time. false
statisticDashboard no statisticDashboard Tool for displaying statistical data. false
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. false
supplyCoord no supplyCoord Deprecated in 3.0.0. Please use "coordToolkit" instead. Tool to read coordinates on mouse click. When clicking once, the coordinates in the view are frozen and can be copied on clicking the displaying input elements to the clipboard, i.e. you can use them in another document/chat/mail/... with Strg+V. false
resetTree no resetTree Tool to reset tree. Clicking on Tool name in the menu under Tools resets the tree. false
wfsFeatureFilter no wfsFeatureFilter Deprecated in 3.0.0. Please use filter instead. Filters WFS features. This required configuring "filterOptions" on the WFS layer object. false
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). false
wfst no wfst WFS-T module to visualize, create, update and delete features. false

Portalconfig.menu.tool

A tool's attribute key defines which tool is loaded. Each tool provides at least the following attributes. To see further configuration options, please visit the tools section.

Name Required Type Default Description Expert
active no Boolean false Whether the tool is open initially. false
icon no String CSS icon class. Icon is shown before the tool name. false
isVisibleInMenu no Boolean true If true, the tool is listed in the menu. false
keepOpen no Boolean/String/String[] false Whether the tool remains open parallel to other tools. Only works if it is used for one tool and if tool is rendered to sidebar, other tools should be rendered to window. false
name yes String Name displayed in the menu. false
onlyDesktop no Boolean false Whether the tool should only be visible in desktop mode. false
renderToWindow no Boolean true Whether the tool should be displayed in the movable widget element. In mobile mode, the window is always used. false
resizableWindow no Boolean false Whether the tool window can be minimized/restored. false

Example

{
    "draw": {
        "name": "Draw / Write",
        "icon": "bi-lightbulb"
    }
}

Portalconfig.menu.tool.gfi

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 Expert
name yes String Name displayed in the menu. false
centerMapToClickPoint no Boolean false If true, centers any clicked feature on the map. Only relevant if the desktopType attribute is "detached". false
icon no String "bi-info-circle-fill" CSS icon class. Icon is shown before the tool name. false
active no Boolean true Whether GFI is active initially. false
desktopType no String "detached" Used to choose a GFI template in desktop mode. If using "attached", the GFI will be positioned next to the feature. Using "detached" will place a marker on the feature and create the GFI window to the right of the map. false
coloredHighlighting3D no coloredHighlighting3D Rule definition to override the highlighting of clicked 3D tiles. false
highlightVectorRules no highlightVectorRules Rule definition to override the styling of clicked vector data. false
showPolygonMarkerForWMS no Boolean false If set to true, Polygonmarker will be shown for WMS features with geometry. Only applies for the DetachedTemplate. false
hideMapMarkerOnVectorHighlight no Boolean false If set to true, the mapmarker won't be shown on vector highlighting. Only applies for the DetachedTemplate false

Examples

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

Portalconfig.menu.tool.gfi.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 Expert
enabled no Boolean true False if coloredHighlighting3D is disabled. false
color no String/String[] "RED" Color can be configured as Array or Cesium.Color (definition e.g "GREEN" for Cesium.Color.GREEN) false

Example

// Example with Array
coloredHighlighting3D: {
    "enabled": true,
    "color": [0, 255, 0, 255]
}

// Example with Cesium.Color
coloredHighlighting3D: {
    "enabled": true,
    "color": "GREEN"
}


Portalconfig.menu.tool.gfi.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 Expert
fill no fill Settable field: color false
image no image Settable field: scale false
stroke no stroke Settable field: width false
text no text Settable field: scale false

Portalconfig.menu.tool.gfi.highlightVectorRules.fill
Name Required Type Default Description Expert
color no Float[] [255, 255, 255, 0.5] RGBA value false
{
    "fill": { "color": [215, 102, 41, 0.9] }
}

Portalconfig.menu.tool.gfi.highlightVectorRules.image
Name Required Type Default Description Expert
scale no Float 1 Scale number false
{
    "image": { "scale": 1.5 }
}

Portalconfig.menu.tool.gfi.highlightVectorRules.stroke
Name Required Type Default Description Expert
width no Integer 1 Stroke line width false
color no Float[] [255, 255, 255, 0.5] RGBA value false
{
    "stroke": { "width": 4, "color": [215, 102, 41, 0.9] }
}

Portalconfig.menu.tool.gfi.highlightVectorRules.text
Name Required Type Default Description Expert
scale no Float 1 Text scale number false
{
    "text": { "scale": 2 }
}

Portalconfig.menu.tool.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 Expert
layerSelectorVisible no Boolean true To display a selector for the layers. Put to false to show without selector. false
multiLayerSelector no Boolean true If layerSelectorVisible true, wether one can open multiple sections of the selector at the same time. false
liveZoomToFeatures no Boolean true Defines whether the filter immediately zooms to filter results. false
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. false
minScale no Integer 5000 Minimum zoom level the filter zooms in when displaying filter results. false
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. false
layerGroups no filterLayerGroups[] [] Configuration of the related layers to be filtered. false
saveTo no String "void" If set to "url", the current filter setting is saved in the URL. This allows the filter setting to be bookmarked. false

Example

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

{
    "filter": {
      "active": false,
      "name": "Filter",
      "icon": "bi-funnel-fill",
      "renderToWindow": false,
      "deactivateGFI": false,
      "layerSelectorVisible": false,
      "geometrySelectorOptions": {
        "visible": true
      },
      "layerGroups": [
        {
          "title": "GRUPPE 1",
          "layers": [
            {
              "layerId": "47"
            }
          ]
        }
      ],
      "layers": [
        {
          "layerId": "8712"
        }
      ]
    }
}

Portalconfig.menu.tool.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 tool in conjunction with external filtering (external: true), please remember to configure your layer filter with geometryName.

Name Verpflichtend Typ Default Beschreibung Expert
visible yes Boolean true Activates the geometry selector. false
geometries no String[] ["Polygon", "Rectangle", "Circle", "LineString"] The selectable geometries and their order. false
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. false
fillColor no String "rgba(0, 0, 0, 0.33)" The fill color of the outer area (or geometry if invertGeometry = false). false
strokeColor no String "rgba(0, 0, 0, 1)" The color of the border of the geometry. false
strokeWidth no Number 1 The thickness of the border of the geometry. false
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. false
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. false
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. false

Example

Example of the minimal configuration of the filterGeometrySelector.

{
    "visible": true
}

Example

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

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

Example

Example of a completely changed configuration of the filterGeometrySelector.

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

Portalconfig.menu.tool.filter.filterLayer

An object to define a layer to filter with.

Name Required Type Default Description Expert
layerId no String The layer id of the layer to filter. Must be configured in the Themenconfig. false
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. false
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. 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. false
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. false
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. false
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. false
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. false
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. false
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. false
searchInMapExtentPreselected no Boolean false The checkbox for filtering in the browser extent is initially selected if searchInMapExtentPreselected: true is set. false
showHits no Boolean true After filtering, the hits are displayed. Set to false to not show the hits. false
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. false
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. false
snippetTags no Boolean true After filtering the current setting is displayed as tags. Set to false to turn of this feature. false
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. false
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. false
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. false
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. false
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. false
filterButtonDisabled no Boolean false Only for strategy passive: Disable the filter button while nothing is selected. false
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. false
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. false
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. false
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. false
filterOnOpen no Boolean If set to true, the filter is triggered when the accorden is clicked. false

Example

In this example one snippet is set with only an attrName. The snippet type is detected automatically. See filterLayerSnippets 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.tool.filter.filterLayerGroups

An object to define a group layer to filter with.

Name Required Type Default Description Expert
title yes String The title to use for the group layer (if layerSelectorVisible true). Can be a translation key also. false
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. false

Example

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

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

Portalconfig.menu.tool.filter.filterLayer.snippets

An object defining a single snippet.

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 Expert
attrName yes String The attribute name used for filtering. Is to be an array if dateRange, sliderRange or featureInfo is used (see examples). false
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. false
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. false
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. false
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. false
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. false
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. false
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. false
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. false
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. false
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. false
timeouts no timeouts Timeouts to configure for better user experience. false
minValue no Number For type date and slider only: The minimum value as number or date string. Leave empty for automatic identification of boundaries. false
maxValue no Number For type date and slider only: The maximum value as number or date string. Leave empty for automatic identification of boundaries. false
decimalPlaces no Number 0 Defines decimal places for the step for slider and sliderRange false
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. false
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). false
placeholder no String "" For type dropdown only: The placeholder to use. Can be a translation key. false
multiselect no Boolean true For type dropdown only: Selection of multiple entries. Set to false to switch to single select. false
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. false
optionsLimit no Number 20000 For type dropdown only: Adds a limit of options in dropdown list. false
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. false
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. false
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). false
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. false
children no children[] [] Child snippet configuration. true
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". false

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

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

Portalconfig.menu.tool.filter.filterLayer.snippets.children

Child snippet configuration. The child snippets are configured in the same way as "normal" snippets. See filterLayerSnippets.

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

Portalconfig.menu.tool.filter.filterLayer.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 Expert
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. false
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. false

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

Portalconfig.menu.tool.filter.filterLayer.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
type yes String The type of service. false
url yes String The service url. false
typename yes String The feature type that will be loaded. Only for WFS false
collection yes String The collection that will be loaded. Only for OAF false

Example

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

Example GeoJSON

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

Example OAF

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

Portalconfig.menu.tool.filter.filterLayer.snippets.localeCompareParams

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

Example String

"localeCompareParams": "de"

Object

Name Required Typ Default Description Expert
locale no String The locale code according ISO 3166 false
options no options The custom options for sorting in localeCompare false

Example Object

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

Portalconfig.menu.tool.filter.filterLayer.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 Expert
ignorePunctuation no Boolean false Determines whether punctuation will be ignored. false
sensitivity no String "variant" Determines whether string collation will be used. false
numeric no Boolean false Determines whether numeric collation will be used false

Example

{
    "ignorePunctuation": true
}

Portalconfig.menu.tool.compareFeatures

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

Name Required Type Default Description Expert
numberOfFeaturesToShow no Integer 3 Maximum amount of features selectable for comparison. false
numberOfAttributesToShow no Integer 12 Maximum amount of attributes initially shown. If more attributes are available, they can be shown and hidden by clicking a button. false

Example

{
    "compareFeatures": {
        "name": "Vergleichsliste",
        "icon": "bi-list-ul",
        "numberOfFeaturesToShow": 5,
        "numberOfAttributesToShow": 10
    }
}

Portalconfig.menu.tool.parcelSearch

Parcel search.

This requires a backend!

Depending on your configuration, special stored queries of a WFS(❗) are requested with given parameters.

Example request: https://geodienste.hamburg.de/HH_WFS_DOG?service=WFS&request=GetFeature&version=2.0.0&&StoredQuery_ID=Flurstueck&gemarkung=0601&flurstuecksnummer=00011

Deprecated in the next major release. Please use wfsSearch instead.

Name Required Type Default Description Expert
serviceId yes String Id of the service to request. Resolved using the rest-services.json file. false
storedQueryId yes String Id of the stored query to use. true
configJSON yes String Path to the configuration file holding districts. Example file. false
parcelDenominator no Boolean false Flag defining whether parcel denominators are used as a level. (Hamburg special: As a city state, Hamburg has no parcel denominators.) false
styleId no String Allows choosing a style id from the style.json file to overwrite the map marker default style. false
zoomLevel no Number 7 Defines to which zoom level the tool should zoom. false

Example

{
    "parcelSearch": {
        "name": "FlurstĂźckssuche",
        "icon": "bi-search",
        "serviceId": "6",
        "storedQueryID": "Flurstueck",
        "configJSON": "https://geodienste.hamburg.de/lgv-config/gemarkungen_hh.json",
        "parcelDenominator": false,
        "styleId": "flaecheninfo"
    }
}

Portalconfig.menu.tool.saveSelection

Tool to save the current map content as a url.

Name Required Type Default Description Expert
simpleMap no Boolean false Adds a SimpleMap URL to the component. When calling this URL, the menu bar, layer tree, and map controls are deactivated. false

Portalconfig.menu.tool.scaleSwitcher

Tool that allows changing the map's current scale.

Name Required Type Default Description Expert
isDisplayInFooter no Boolean false Activates the scale selection also in the footer (note: correlation with the ScaleLine parameter in the config.js). false

Portalconfig.menu.tool.resetTree

Reset the theme tree.

Name Required Type Default Description Expert
resetTree no Boolean false Tool to reset tree. Click on the tool name in the menu under Tools to reset the tree. false

Portalconfig.menu.tool.searchByCoord

Coordinate search.

Name Required Type Default Description Expert
zoomLevel no Number 7 Defines to which zoom level the tool should zoom. false

Example

{
    "searchByCoord": {
        "name": "FlurstĂźckssuche",
        "icon": "bi-search",
        "zoomLevel": 7
    }
}

Portalconfig.menu.tool.print

Print module, configurable for 2 print services: High Resolution PlotService and MapfishPrint 3. Printing vector tile layers is not supported, since the print services themselves do not support it. Should users try to print such layers, a warning will be shown.

This requires a backend!

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

Name Required Type Default Description Expert
mapfishServiceId yes String Deprecated in 3.0.0. Print service id. Resolved using the rest-services.json file. false
printServiceId yes String Print service id. Resolved using the rest-services.json file. false
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. false
printAppCapabilities no String "capabilities.json" path for the configuration of the print service false
currentLayoutName no String "" 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. false
printAppId no String "master" Print service print app id. This tells the print service which template(s) to use. false
filename no String "report" Print result file name. false
title no String "PrintResult" Document title appearing as header. false
titleLength no Number 45 The length of the title characters. false
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). false
legendText no String "Mit Legende" Descriptive text for the legend print checkbox. false
dpiForPdf no Number 200 DPI resolution for the map in the PDF file. false
capabilitiesFilter no capabilitiesFilter Filter for the response of the configured print service. Possible keys are layouts and outputFormats. false
defaultCapabilitiesFilter no capabilitiesFilter If there is no key set in capabilitiesFilter, the key from this object is taken. false
useProxy no Boolean false Deprecated in the next major release. GDI-DE recommends setting CORS headers on the required services instead of using proxies. Defines whether a service URL should be requested via proxy. For this, dots in the URL are replaced with underscores. false
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. false
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. false
layoutOrder no String[] Defines the order in which the layouts should be shown in the dropdown. Only to be used in combination with the print service 'plotservice'. false
isPrintDrawnGeoms no Boolean false Flag if it's possible to print geometries created by the Draw or Measure tool. Only to be used in combination with the print service 'plotservice'. false
showInvisibleLayerInfo no Boolean true Defines whether an infobox is shown when layers will not be printed because they are invisible due to scale. false

High Resolution PlotService example configuration

{
    "print": {
        "name": "Karte drucken",
        "icon": "bi-printer-fill",
        "mapfishServiceId": "123456",
        "filename": "Print",
        "title": "My Title",
        "printService": "plotservice",
        "printAppCapabilities": "info.json",
        "version" : "HighResolutionPlotService",
        "layoutOrder": [
            "Default A4 hoch",
            "Default A4 quer",
            "Default A3 hoch",
            "Default A3 quer",
        ]
    }
}

MapfishPrint3 example configuration

{
    "print": {
        "name": "Karte drucken",
        "icon": "bi-printer-fill",
        "mapfishServiceId": "mapfish_printservice_id",
        "printAppId": "mrh",
        "filename": "Print",
        "title": "Mein Titel"
    }
}
Portalconfig.menu.tool.print.capabilitiesFilter

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

Name Verpflichtend Typ Default Beschreibung Expert
layouts no String[] Array of layouts should shown in the UI. false
outputFormats no String[] Array of formats should shown in the UI. false

Example capabilitiesFilter:

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

Portalconfig.menu.tool.draw

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 Expert
name yes String Tool name in the menu. false
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. false
drawSymbolSettings no drawSymbolSet {"color": [55, 126, 184, 1], "opacity": 1} Pre-configuration for symbol drawing. false
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. false
drawLineSettings no drawLineSet {"strokeWidth": 1, "opacityContour": 1, "colorContour": [0, 0, 0, 1]} Pre-configuration for line drawing. false
drawCurveSettings no drawCurveSet {"strokeWidth": 1, "opacityContour": 1, "colorContour": [0, 0, 0, 1]} Pre-configuration for freehand drawing. false
drawAreaSettings no drawAreaSet {"strokeWidth": 1, "color": [55, 126, 184, 1], "opacity": 1, "colorContour": [0, 0, 0, 1], "opacityContour": 1} Pre-configuration for area drawing. false
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. false
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. false
writeTextSettings no writeTextSet {"text": "", "fontSize": 10, "font": "Arial", "color": [55, 126, 184, 1], "opacity": 1} Pre-configuration for text writing. false
download no download {"preSelectedFormat": "KML"} Pre-configuration for download. false
enableAttributesSelector no Boolean false Enables an button which toggles an edit section for custom attributes on the selected feature. false
semicolonCSVDelimiter no Boolean true To decide if the semicolon is used as the delimiter for exported CSV file. false

Example

#!json
{
    "draw": {
        "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.tool.draw.icon

Dot object consisting of text, type, and value.

Name Required Type Default Description Expert
id yes String Symbol text displayed in the select menu. The id has to be defined in the locale file (usually common) as modules.tools.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. false
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.tools.draw.iconList + id) has to be given. false
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. false
scale no number Scale factor for images. false
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. false

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.tool.draw.drawSymbolSet

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

Name Required Type Default Description Expert
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. false
opacity yes Number 1 The pre-configured transparency of symbols, given in range [0..1] for point data. false

Example

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

Portalconfig.menu.tool.draw.drawLineSet

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

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

Example

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

Portalconfig.menu.tool.draw.drawCurveSet

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

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

Example

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

Portalconfig.menu.tool.draw.drawAreaSet

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

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

Example

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

Portalconfig.menu.tool.draw.drawCircleSet

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

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

Example

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

Portalconfig.menu.tool.draw.drawDoubleCircleSet

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

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

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.tool.draw.writeTextSet

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

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

Example

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

Portalconfig.menu.tool.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 Expert
preSelectedFormat no enum["KML","GEOJSON","GPX"] "KML" Pre-configured pre-selected form. false

Example

{
    "preSelectedFormat": "KML"
}

Portalconfig.menu.tool.featureLister

This module can display loaded vector data from WFS(❗) layers in a table. The module receives the available layers from the map via the visible vector layers and shows them in the first tab. If an entry (layer) is selected in this tab, its LayerId is saved. Then, from the layer list, the selected layer is filtered and saved. As a reaction to that selection, the layer features are evaluated and listed in the second tab. Not all features, but at most the configured amount of features is initially loaded, and a button is shown that allows loading additional features to this table.

A hover event controls highlighting hovered features in the map. By clicking a feature, its attributes are shown completely in a third tab. In the future, WFS-T attributes should be editable here. The table also provides sort functionalities.

Name Required Type Default Description Expert
maxFeatures no Integer 20 Amount of features to display initially. More features of the same amount can be revealed by clicking a button. false
highlightVectorRulesPolygon no highlightVectorRulesPolygon Specify the fill color and outline color and stroke width for highlighting the polygon features as well as a zoom parameter. false
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. false

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.tool.featureLister.highlightVectorRulesPolygon

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

Name Required Type Default Description Expert
fill no fill Possible setting: color false
stroke no stroke Possible setting: width false
zoomLevel no Integer 7 Zoom level, possible setting: 0-9 false

Portalconfig.menu.tool.featureLister.highlightVectorRulesPolygon.fill
Name Required Type Default Description Expert
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA) false
"fill": { "color": [215, 102, 41, 0.9] }

Portalconfig.menu.tool.featureLister.highlightVectorRulesPolygon.stroke
Name Required Type Default Description Expert
width no Integer 1 Possible setting: width false
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA) false
"stroke": { "width": 4 , "color": [255, 0, 255, 0.9]}

Portalconfig.menu.tool.featureLister.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 Expert
fill no fill Possible setting: color false
stroke no stroke Possible setting: width false
image no image Possible setting: scale false
zoomLevel no Integer 7 Zoom level, possible setting: 0-9 false

Portalconfig.menu.tool.featureLister.highlightVectorRulesPointLine.fill
Name Required Type Default Description Expert
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA) false
"fill": { "color": [215, 102, 41, 0.9] }

Portalconfig.menu.tool.featureLister.highlightVectorRulesPointLine.stroke
Name Required Type Default Description Expert
width no Integer 1 Possible setting: width false
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA) false
"stroke": { "width": 4 , "color": [255, 0, 255, 0.9]}

Portalconfig.menu.tool.featureLister.highlightVectorRulesPointLine.image
Name Required Type Default Description Expert
scale no Integer 1.5 Possible setting: scale false
"image": { "scale": 2}

Portalconfig.menu.tool.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 Expert
highlightVectorRulesPolygon no highlightVectorRulesPolygon Specify the fill color and outline color and stroke width for highlighting the polygon features as well as a zoom parameter. false
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. false

Example

{
    "selectFeatures": {
        "name": "translate#common:menu.tools.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.tool.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 Expert
fill no fill Possible setting: color false
stroke no stroke Possible setting: width false
zoomLevel no Integer 7 Zoom level, possible setting: 0-9 false

Portalconfig.menu.tool.selectFeatures.highlightVectorRulesPolygon.fill
Name Required Type Default Description Expert
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA) false
"fill": { "color": [215, 102, 41, 0.9] }

Portalconfig.menu.tool.selectFeatures.highlightVectorRulesPolygon.stroke
Name Required Type Default Description Expert
width no Integer 1 Possible setting: width false
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA) false
"stroke": { "width": 4 , "color": [255, 0, 255, 0.9]}

Portalconfig.menu.tool.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 Expert
fill no fill Possible setting: color false
stroke no stroke Possible setting: width false
image no image Possible setting: scale false
zoomLevel no Integer 7 Zoom level, possible setting: 0-9 false

Portalconfig.menu.tool.selectFeatures.highlightVectorRulesPointLine.fill
Name Required Type Default Description Expert
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA) false
"fill": { "color": [215, 102, 41, 0.9] }

Portalconfig.menu.tool.selectFeatures.highlightVectorRulesPointLine.stroke
Name Required Type Default Description Expert
width no Integer 1 Possible setting: width false
color no Float[] [255, 255, 255, 0.5] Possible setting: color (RGBA) false
"stroke": { "width": 4 , "color": [255, 0, 255, 0.9]}

Portalconfig.menu.tool.selectFeatures.highlightVectorRulesPointLine.image
Name Required Type Default Description Expert
scale no Integer 1.5 Possible setting: scale false
"image": { "scale": 2}

Portalconfig.menu.tool.measure

The measure tool allows measuring distances and areas. This includes the specification of measurement inaccuracies.

Name Required Type Default Description Expert
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). false
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. false
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). false
polygonUnits no String[] ["m²", "km²"] Indicates which units for area measurements will be selectable by users. Options are "m²", "ha", "km²". false

Example

{
    "measure": {
        "name": "translate#common:menu.tools.measure",
        "earthRadius": 6378137,
        "measurementAccuracy": "dynamic"
    }
}

Portalconfig.menu.tool.modeler3D

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

Name Required Type Default Description Expert
gmlIdPath no String "gmlid" Specify the path to the GML ID in the GFI for buildings in 3D Layers. false
updateAllLayers no Boolean true Specify, if all layers should be updated, when buildings are hidden. false
highlightStyle no highlightStyle Specify the fill color, alpha, outline color and outline width for highlighting entities. false

Example

{
    "modeler3D": {
        "name": "translate#common:menu.tools.modeler3D",
        "gmlIdPath": "gmlId",
        "updateAllLayers": false,
        "highlightStyle": {
            "silhouetteColor": "#E20D0F",
            "silhouetteSize": 4
        }
    }
}
Portalconfig.menu.tool.modeler3D.highlightStyle
Name Required Type Default Description Expert
silhouetteColor no String "#E20D0F" Specify the outline color for highlighting entities. false
silhouetteSize no Number 1 Specify the outline width for highlighting entities. false

Example

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

Portalconfig.menu.tool.contact

The contact form allows users to send messages to a configured mail address.

This requires a backend!

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

Name Required Type Default Description Expert
serviceId yes String Email service id. Resolved using the rest-services.json file. false
serviceID no String Deprecated in the next major release. Please use serviceId instead. Email service id. Resolved using the rest-services.json file. false
from yes email[] Email sender. Please mind our hints regarding E-Mail safety. false
to yes email[] Recipient of the E-Mail. Please mind our hints regarding E-Mail safety. false
closeAfterSend no Boolean false Flag determining if the contact window should be closed after successfully sending a message. false
contactInfo no String Additional text shown above the contact form. false
deleteAfterSend no Boolean false Flag determining whether the contact form is emptied after successfully sending a message. false
includeSystemInfo no Boolean false Flag determining if the senders system information should be included in the E-Mail. false
locationOfCustomerService no String "de" The country the customer service is based in. The parameter is used for the date in the ticketId. false
maxLines no Number 5 Amount of lines (height) for the textArea of the form false
showPrivacyPolicy no Boolean false Flag determining if a checkbox should be displayed for agreeing to the privacy policy. false
privacyPolicyLink no String "https://www.masterportal.org/datenschutz.html" Link to the full privacy policy. Should be given if showPrivacyPolicy is set to true. false
subject no String The subject to be used for the E-Mail. false
withTicketNo no Boolean true Whether successfully sending a email retrieves a ticket number for the user. false

Example

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

Hints regarding E-Mail 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.tool.contact.email

E-Mail object containing a mail address, and a display name.

Name Required Type Default Description Expert
email no String E-Mail address. false
name no String Display name. false

Example

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

Portalconfig.menu.tool.layerClusterToggler

The layer cluster toggler tool allows to activate and deactivate cluster layers together

Name Required Type Default Description Expert
name yes String "additional:addons.menu.tools.layerClusterToggler.name" Name displayed in the tool. false
icon yes String "bi-easel3" icon displayed in the tool menu false
clusterList yes clusterList[] [] Array of layer id objects or layer id string. false

Example

{
    "layerClusterToggler": {
        "name": "translate#additional:addons.menu.tools.layerClusterToggler.name",
        "icon": "bi-easel3",
        "clusterList": ["8712", "21067"]
    }
}

Portalconfig.menu.tool.layerClusterToggler.clusterList

Defines a cluster of layer

Name Required Type Default Description Expert
layerId yes String ID of the service to be shown in the portal. This layer ID MUST be configured as part of the Themenconfig! false
suffix yes String Suffix of layer. This Suffix MUST be configured as part of the Themenconfig false

Example

{
    "layerClusterToggler": {
        "name": "translate#additional:addons.menu.tools.layerClusterToggler.name",
        "icon": "bi-easel3",
        "clusterList": [
            "8712",
            "8713",
            {
                "layerId": "21067",
                "suffix": "90012"
            },
            {
                "layerId": "21067",
                "suffix": "90013"
            },
            {
                "layerId": "21067",
                "suffix": "90014"
            },
            {
                "layerId": "21067",
                "suffix": "90015"
            }
        ]
    }
}

Portalconfig.menu.tool.layerSlider

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

Name Required Type Default Description Expert
title no String "common:modules.tools.layerSlider.title" Name displayed in the tool. false
timeInterval no Integer 2000 Time in ms until the next layer is shown. false
layerIds yes layerId[] [] Array of layer information objects. false
sliderType no enum["player","handle"] "player" Layer slider type. ""player" shows start, pause, and stop buttons, while "handle" uses a switch. In the latter case, layer transparency is adjusted additionally. false

Example

{
    "layerSlider": {
        "name": "Timeline",
        "icon": "bi-hourglass-split",
        "title": "Example WMS simulation",
        "sliderType": "player",
        "timeInterval": 2000,
        "layerIds": [
            {
                "title": "Service 1",
                "layerId": "123"
            },
            {
                "title": "Service 2",
                "layerId": "456"
            },
            {
                "title": "Service 3",
                "layerId": "789"
            }
        ]
    }
}

Portalconfig.menu.tool.layerSlider.layerId

Defines a layer slider layer.

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

Example

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

Portalconfig.menu.tool.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
shadowTime no shadowTime Default time the tool is started with. Recognizes "month", "day", "hour", and "minute".
isShadowEnabled no Boolean false Default shadow value. true immediately renders shadows, false requires a manual confirmation.

Example

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

Portalconfig.menu.tool.statisticDashboard

Name Required Type Default Description Expert
name yes String "translate#common:menu.tools.statisticDashboard" The Name of the Tool. false
subtitle no String "common:modules.tools.statisticDashboard.headings.mrhstatistics" The subtitle to display false
icon no String "bi-speedometer" The icon of the Tool false
colorScheme yes colorScheme "" Defines the colours of the features in statisticdashboard. false
active no Boolean false If true, the tool is open after initializing the portal. false
data yes data "" data for statistic dashboard. false

Example

{
    "name": "translate#common:menu.tools.statisticDashboard",
    "subtitle": "common:modules.tools.statisticDashboard.headings.mrhstatistics",
    "icon": "bi-speedometer",
    "colorScheme": {
        "referenceRegion": [155, 155, 155, 0.7],
        "comparisonMap": [[198, 219, 239, 0.9], [158, 202, 225, 0.9], [107, 174, 214, 0.9], [49, 130, 189, 0.9], [8, 81, 156, 0.9]],
        "differenceMap": [[210, 226, 27, 0.9], [122, 209, 81, 0.9], [84, 197, 104, 0.9], [34, 168, 132, 0.9], [35, 136, 142, 0.9]],
        "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.tool.statisticDashboard.colorScheme

Name Required Type Default Description Expert
referenceRegion yes Float[] [] The RGBA color of the Reference region. false
comparisonMap yes Float[] [] The list of the RGBA colors of the comparison map. false
differenceMap yes Float[] [] The list of the RGBA colors of the difference map. false
lineCharts yes Float[] [] The list of the RGBA colors of the linecharts. false

Example

{
        "referenceRegion": [155, 155, 155, 0.7],
        "comparisonMap": [[198, 219, 239, 0.9], [158, 202, 225, 0.9], [107, 174, 214, 0.9], [49, 130, 189, 0.9], [8, 81, 156, 0.9]],
        "differenceMap": [[210, 226, 27, 0.9], [122, 209, 81, 0.9], [84, 197, 104, 0.9], [34, 168, 132, 0.9], [35, 136, 142, 0.9]],
        "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.tool.statisticDashboard.data

Name Required Type Default Description Expert
layerId yes String "" The id of the Layer. false
geometryAttribute yes String "" Type of the geometry attribute. false
chartDirectionValue no String "" Specifies the number above which the bars in the chart will be switched from vertical to horizontal. false
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. false
mappingFilter yes mappingFilter "" This object contains attributes used to filter the map by its values. false

Example

{
    "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.tool.statisticDashboard.data.timeStepsFilter

Name Verpflichtend Typ Default Beschreibung Expert
key:value ja String "" Key: The key is the number of the last "key" entry for dropdown options. Value: The description for the grouping. false
all:value ja String "" Key: The keyword for selecting all entries for dropdown options. Value: The description for the grouping. false

Example

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

Portalconfig.menu.tool.statisticDashboard.data.mappingFilter

Name Required Type Default Description Expert
timeAttribute yes timeAttribute "" The attribute for the time filter. false
regionNameAttribute yes regionNameAttribute "" The attribute for the name of the region. false
statisticsAttributes yes statisticsAttributes "" Attributes used to filter the map by its values. false

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.tool.statisticDashboard.data.mappingFilter.timeAttribute

Name Required Type Default Description Expert
attrName yes String "" The attribute for the time filters. false
name no String "" The name of the attribute. false
inputFormat no String "" Input Format false
outputFormat no String "" Output Format false

Example

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

Portalconfig.menu.tool.statisticDashboard.data.mappingFilter.regionNameAttribute

Name Required Type Default Description Expert
attrName yes String "" The attribute of the region. false
name no String "" The name of the region attribute. false

Example

{
    "attrName": "statistisches_gebiet",
    "name": "Statistisches Gebiet"
}

Portalconfig.menu.tool.statisticDashboard.data.mappingFilter.statisticsAttributes

Name Required Type Default Description Expert
key yes String "" The key of the Statistic attributes. false
name yes String "" The name of the statisticsAttributes. false
Category yes String "" The category of the statisticsAttributes. If the category is set, it will be grouped under this category in the category selection. false

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.tool.shadow.shadowTime

Todo.

Name Required Type Default Beschreibung
month no String month
day no String day
hour no String hour
minute no String minute

Example

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

Portalconfig.menu.tool.wfsSearch

Makes it possible to create a form to query WFS(❗) layers using filters through a separate interface. 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 formulars (SearchInstances) can be defined, which will be selectable through a dropdown menu.

Name Required Type Default Description Expert
instances yes searchInstance[] Array of searchInstances. A singular searchInstance corresponds to its own search form. false
zoomLevel no Number 5 Defines to which zoom level the tool should zoom. Should a chosen feature not fit the zoom level, a fitting zoom level is chosen automatically. false
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 showing all at the same time. false
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. false

Example

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

Portalconfig.menu.tool.wfsSearch.searchInstance

A singular instance of the WFS Search which will be selectable through a dropdown in the tool.

Name Required Type Default Description Expert
literals yes literal[] Array of literals. true
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. false
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. false
suggestions no suggestions If given, the service will be queried whenever a user inserts values into an input field to suggest a value. false
title yes String Title of the search instance to be displayed in a dropdown inside the tool. false
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 locale key. If the value explicitly set to hide, no information regarding the structure of the form will be displayed. false
resultDialogTitle no String Heading of the result list. If not configured the name WFS search will be displayed. May be a translation key. false
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. true

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": {
                            "type": "equal",
                            "fieldName": "gemarkung",
                            "inputLabel": "District",
                            "options": ""
                        }
                    },
                    {
                        "field": {
                            "type": "equal",
                            "fieldName": "flur",
                            "inputLabel": "Cadastral District",
                            "options": "flur"
                        }
                    }
                ]
            }
        }
    ]
}

Portalconfig.menu.tool.wfsSearch.searchInstance.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 Expert
clause yes clause Defines the way multiple literals should be queried together. Can be seen as a group of literals. true
field no field Representation for the selection field of a service value for the user. true

Examples

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

Portalconfig.menu.tool.wfsSearch.searchInstance.literal.clause

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

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

Example

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

Portalconfig.menu.tool.wfsSearch.searchInstance.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": {
        "type": ["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 value 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": {
                    "type": "equal",
                    "fieldName": "objects",
                    "inputLabel": "Objects",
                    "options": ""
                }
            },
            {
                "field": {
                    "type": "equal",
                    "fieldName": "foo",
                    "inputLabel": "Foo",
                    "options": "foo"
                }
            },
            {
                "field": {
                    "type": "equal",
                    "fieldName": "bar",
                    "inputLabel": "Bar",
                    "options": "foo.bar"
                }
            }
        ]
    }
}
Name Required Type Default Description Expert
defaultValue no String/String[] If the field is not required, this value will be used on sending. false
fieldName yes String/String[] The wfs service parameter name for the comparison. false
inputLabel yes String/String[] Label for the UI element. May be a locale key. false
inputPlaceholder no String/String[] Placeholder for the UI element; only used if options is not set. Should contain example data. May be a locale key. false
inputTitle no String/String[] Value to be shown when hovering the UI element. May be a locale key. false
required no Boolean/Boolean[] false Whether the field has to be filled. false
options no String/option[]/String[] If options is an array (irrelevant if of strings or options), 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. <br /> If it is a String, there are different possibilities: <ul><li>If the String is empty, the keys of selectSource are used.</li><li>If the String is not empty, it is assumed that another field with options="" exists; otherwise the field is disabled. It is also assumed that the String represents an array in selectSource providing further options.</li></ul> Note: It is also possible to declare the options as a multidimensional array option[][]. However, this can't be used as a parameter for Masterportal Admin. This should be used if an option[] is wanted for a field that uses multiples parameters. true
type no enum["equal", "like"]/enum["equal", "like"][] Required for usage with WFS@1.1.0. The type declared how the field should be compared to the value in the service. false
usesId no Boolean/Boolean[] false 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. false

Example

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

Portalconfig.menu.tool.wfsSearch.searchInstance.literal.field.option

A selectable option for a queryable parameter.

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

Example

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

Portalconfig.menu.tool.wfsSearch.searchInstance.resultList

Settings for the output of the found features in the result list.

By specifying showAll all attributes of the found features are displayed in their original form.

By using an Object, a key of the Object must represent one of the attributes of the feature, and the corresponding value defines the textual output of that attribute.

Examples:

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

Portalconfig.menu.tool.wfsSearch.searchInstance.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 Expert
gazetteer no gazetteer Declares whether the used WFS service is a WFS-G, which needs to be parsed differently. false
layerId no String Id of the WFS service that should be queried. Information is fetched from services.json. false
likeFilter no likeFilter {"wildCard": "*", "singleChar": "#", "escape": "!"} The configuration of the service for the like filter. true
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. false
restLayerId no String Id of the WFS service that should be queried. Information is fetched from rest-services.json. false
responseProjection no String The expected projection of the coordinates in the response of the requested service. If it doesn't match the map projection a conversion will happen. false
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. false

Example

{
    "requestConfig": {
        "restLayerId": "1234",
        "storedQueryId": "Flurstuecke",
        "responseProjection": "EPSG:4326"
    }
}

Portalconfig.menu.tool.wfsSearch.searchInstance.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 Expert
wildCard yes String "*" The wildcard value for the like filter. true
singleChar yes String "#" The single character value for the like filter. true
escapeChar yes String "!" The escape character value for the like filter. true

Example

In this example case, the key for escapeChar deviates.

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

Portalconfig.menu.tool.wfsSearch.searchInstance.requestConfig.gazetteer

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

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

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

Portalconfig.menu.tool.wfsSearch.searchInstance.suggestions

Configuration for the suggestions of the user input.

Name Required Type Default Description Expert
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. false
length no Number 3 The query is triggered when the length of the input is at least as long as this parameter. false

Portalconfig.menu.tool.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 features, the available values including its label are based on the layers configured gfiAttributes. For more information see services.json.

Name Required Type Default Description Expert
layerIds yes String[] Array of ids of layer defined in services.json. false
icon no String "bi-globe" Icon displayed for the tool. false
name no String "WfsTransaction" Tool name shown in the portal. false
layerSelectLabel no String "common:modules.tools.wfsTransaction.layerSelectLabel" Deprecated in 3.0.0. 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. false
toggleLayer no Boolean false Whether the features of the currently selected layer should stay visible when adding a new feature. false
useProxy no Boolean false Deprecated in 3.0.0. GDI-DE recommends setting CORS headers on the required services instead of using proxies. Defines whether a service URL should be requested via proxy. For this, dots in the URL are replaced with underscores. false
areaButton no TransactionConfig[]/Boolean [] Deprecated in 3.0.0. Please use polygonButton instead. If both are present, areaButton is used for now. Defines which layers of layerIds allow insert transactions of polygon geometries. false
delete no TransactionConfig/Boolean false Defines which layers of layerIds allow delete transactions. false
edit no String/Boolean false Deprecated in 3.0.0. Please use update instead. If both are present, edit is used for now. If present as a Boolean, it is decided whether features can generally be updated and if it is present as a string, features can be updated and the String defined the value presented inside the button. false
lineButton no TransactionConfig[]/Boolean [] Defines which layers of layerIds allow insert transactions of line geometries. false
pointButton no TransactionConfig[]/Boolean [] Defines which layers of layerIds allow insert transactions of point geometries. false
polygonButton no TransactionConfig[]/Boolean [] Defines which layers of layerIds allow insert transactions of polygon geometries. false
update no TransactionConfig/Boolean false Defines which layers of layerIds allow update transactions. false

Example

{
    "wfst": {
        "name": "WFS-T Tool",
        "icon": "bi-globe",
        "layerIds": ["1234", "5678", "4389"],
        "toggleLayer": true,
        "pointButton": [
            {
                "layerId":"1234",
                "caption": "Point test",
                "show": true
            },
            {
                "layerId": "5678",
                "show": true,
                "multi": true
            }
        ],
        "lineButton": false,
        "polygonButton": [
            {
                "layerId": "4389",
                "show": false
            }
        ],
        "update": [
            {
                "layerId": "4389",
                "show": true
            }
        ]
    }
}

Portalconfig.menu.tool.wfst.TransactionConfig

Specific configuration for transaction methods of given layers.

Name Required Type Default Description Expert

|available|yes|Boolean|true|Availability of the transaction method for the layer with the given id.|false| |layerId|yes|String||Layer the transaction method is being configured for.|false| |caption|no|String|"common:modules.tools.wfsTransaction.interactionSelect."|Deprecated in 3.0.0. Please use text instead. If both are present, cpation is used for now. Button text. If no value is given, * will be replaced with a standard value depending on the configured button. May be a locale key.|false| |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.|false| |multi|no|Boolean|false|Whether the drawn geometries of this layer should be Multi-X. This parameter does not have any use for update / edit and delete.|false| |show|no|Boolean|true|Deprecated in 3.0.0. Please use available instead. If both are present, show is used for now. Availability of the button for the layer with the given id.|false| |text|no|String|"common:modules.tools.wfsTransaction.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.|false|

Examples

{
    "layerId": "1234",
    "show": true,
    "caption": "Point test"
}
{
    "layerId": "5678",
    "show": true
}
{
    "layerId": "5489",
    "multi": true
}

Portalconfig.menu.tool.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 Expert
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. false
heightElementName no String Coordinate query: The element name under which the height in the XML is searched. false
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.tools.coordToolkit.noHeightWater" in the interface. If this attribute is not specified, then the text provided by the WMS will be displayed. false
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.tools.coordToolkit.noHeightBuilding" in the interface. If this attribute is not specified, then the text provided by the WMS will be displayed. false
zoomLevel no Number 7 Coordinate search: Specifies the zoom level to which you want to zoom. false
showCopyButtons no Boolean true Switch to show or hide the buttons for copying the coordinates. false
delimiter no String "Pipe-Symbol" Delimiter of the coordinates when copying the coordinate pair false
heightLayerInfo no String An explanation for the height can be deposited here. false
coordInfo no CoordInfo An object with explanations for the coordinate reference systems can be stored here. false

Example

#!json
 "coordToolkit": {
            "name": "translate#common:menu.tools.coordToolkit",
            "icon": "bi-globe",
            "zoomLevel": 5,
            "heightLayerId" : "19173",
            "heightElementName": "value_0",
            "heightValueWater": "-20",
            "heightValueBuilding": "200",
            "delimiter": "-",
            "showCopyButtons": true
          }

Portalconfig.menu.tool.coordToolkit.coordInfo

Name Required Type Default Description Expert
title no string Heading for the explanations on the coordinate reference systems. false
explanations no explanations[] Array with explanations from which a list is generated. false

Portalconfig.menu.tool.coordToolkit.coordInfo.explanations

Array with explanations from which a list is generated.


Portalconfig.menu.tool.addWMS

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


Portalconfig.menu.tool.bufferAnalysis

The tool 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 tool requires vector based Data from WFS(❗) services for both the source and the target layer.


Portalconfig.menu.tool.coord

⚠️Deprecated in 3.0.0 Please use "supplyCoord" instead. Tool to read coordinates on mouse click


Portalconfig.menu.tool.coordToolkit

Tool to read coordinates on mouse click and search for coordinates.


Portalconfig.menu.tool.extendedFilter

⚠️Deprecated in 3.0.0 Please use "filter" instead.

Dynamic filtering of WFS(❗) features. This requires an extendedFilter configuration on the WFS layer object.


Portalconfig.menu.tool.fileImport

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

Name Required Type Default Description Expert
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 false

Example

#!json
"fileImport": {
    "name": "translate#common:menu.tools.fileImport",
    "icon":"bi-box-arrow-in-down-right",
    "enableZoomToExtend": true
}

Portalconfig.menu.tool.kmlimport

⚠️Deprecated in 3.0.0. Please use fileImport instead.

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


Portalconfig.menu.tool.layerClusterToggler

With this tool one can de-/activate clusters of layers together.


Portalconfig.menu.tool.styleVT

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


Portalconfig.menu.tool.supplyCoord

⚠️Deprecated in 3.0.0. Please use coordToolkit instead.

Tool to read coordinates on mouse click.


Portalconfig.menu.tool.resetTree

Tool to reset the tree.


Portalconfig.menu.tool.wfsFeatureFilter

⚠️Deprecated in 3.0.0. Please use filter instead.

The tool allows for filtering WFS(❗) features. This required configuring "filterOptions" on the WFS layer object.|false|


Portalconfig.menu.tool.routing

Routing-tool. 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 Expert
activeRoutingToolOption no String "DIRECTIONS" Which routing tool should be open. false
routingToolOptions no String[] [ ] Which routing tool should be enabled. ("DIRECTIONS", "ISOCHRONES") false
download no download Downloadoptions false
geosearch no geosearch Geosearchoptions false
geosearchReverse no geosearchReverse Geosearchreverseoptions false
directionsSettings no directionsSettings Directionsoptions false
isochronesSettings no isochronesSettings Isochronesoptions false

Example

#!json
{
    "routing": {
        "name": "translate#common:menu.tools.routing",
        "icon": "bi-signpost-2-fill",
        "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, 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
            }
        },
        "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.tool.routing.download

Routing-tool download options.

Name Required Type Default Description Expert
fileName no String Default filename for the download. false
format no String "GEOJSON" Which format should be selected by default. ("GEOJSON", "KML", "GPX") false

Example

#!json
{
    "download": {
        "filename": "",
        "format": "GEOJSON"
    }
}

Portalconfig.menu.tool.routing.geosearch

Routing-tool geosearch options.

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

Example for BKG

#!json
{
    "geosearch": {
        "type": "BKG",
        "serviceId": "bkg_geosearch",
        "bbox": {"CYCLING": "9.6,53.40,10.4,53.84"}
    }
}

Example for SPECIALWFS

#!json
{
    "geosearch": {
        "minChars": 3,
        "limit": 10,
        "type": "SPECIALWFS",
        "serviceId": "specialWfs_geosearch",
        "typeName": "ms:strasse_nr",
		"propertyNames": [
			"ms:LABEL_TEXT"
			],
		"geometryName": "ms:msGeometry"
    }
}

Example for ELASTIC

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

Portalconfig.menu.tool.routing.geosearch.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 Expert
speedProfile no String Coordinate values "West,South,East,North" false

Example

#!json
{
    "bbox": {"CYCLING": "9.6,53.40,10.4,53.84"}
}

Portalconfig.menu.tool.routing.geosearchReverse

Routing-tool geosearch reverse options.

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

Example

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

Portalconfig.menu.tool.routing.directionsSettings

Routing-tool directions options.

Name Required Type Default Description Expert
type yes String Which type of service should be used for the request. ("ORS") false
serviceId yes String Which service should be used for the request. false
speedProfile no String "CAR" Which speed profile should be selected by default. false
preference no String "RECOMMENDED" Which type of directions should be used by default. false
customPreferences no customPreferences Possibility to define additional preferences for the different speed profiles (additionally to the BKG service) (requires own modified backend) false
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) false
styleRoute no styleRoute Stylerouteoptions false
styleWaypoint no styleWaypoint Stylewaypointoptions false
styleAvoidAreas no styleAvoidAreas Styleavoidareasoptions false
batchProcessing no batchProcessing Batchprocessingoptions false

Example

#!json
{
    "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.tool.routing.directionsSettings.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 Expert
speedProfile no String[] Options for avoid traffic routes that should be available for the speedProfile. false

Example

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

Portalconfig.menu.tool.routing.directionsSettings.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 Verpflichtend Typ Default Beschreibung Expert
speedProfile no String[] Which preferences should be available for the speedProfile. false

Beispiel

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

Portalconfig.menu.tool.routing.directionsSettings.styleRoute

Routing-tool directions route style options.

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

Example

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

Portalconfig.menu.tool.routing.directionsSettings.styleWaypoint

Routing-tool directions waypoint style options.

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

Example

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

Portalconfig.menu.tool.routing.directionsSettings.styleAvoidAreas

Routing-tool directions avoid areas style options.

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

Example

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

Portalconfig.menu.tool.routing.directionsSettings.batchProcessing

Routing-tool directions batch processing options.

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

Example

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

Portalconfig.menu.tool.routing.isochronesSettings

Routing-tool isochrones options.

Name Required Type Default Description Expert
type yes String Which type of service should be used for the request. ("ORS") false
serviceId yes String Which service should be used for the request. false
speedProfile no String "CAR" Which speed profile should be selected by default. false
isochronesMethodOption no String "TIME" Which method should be selected by default. false
distanceValue no Number 30 Which distance value in km should be selected by default. false
minDistance no Number 1 Which minimal distance value in km should be used. false
maxDistance no Number 400 Which maximum distance value in km should be used. false
timeValue no Number 30 Which time value in min should be selected by default. false
minTime no Number 1 Which minimal time value in min should be used. false
maxTime no Number 180 Which maximum time in min should be used. false
intervalValue no Number 15 Which interval value in km/min should be used by default. false
minInterval no Number 1 Which minimal interval value in km/min should be used. false
maxInterval no Number 30 Which maximum interval value in km/min should be used. false
styleCenter no styleCenter Stylecenteroptions false
styleIsochrones no styleIsochrones Styleisochronesoptions false
batchProcessing no batchProcessing Batchprocessingoptions false

Example

#!json
{
    "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.tool.routing.isochronesSettings.styleCenter

Routing-tool isochrones centers style options.

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

Example

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

Portalconfig.menu.tool.routing.isochronesSettings.styleIsochrones

Routing-tool isochrones style options.

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

Example

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

Portalconfig.menu.tool.routing.isochronesSettings.batchProcessing

Routing-tool isochrones batch processing options.

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

Example

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

The staticlinks array contains objects either describing links to other web resources or triggers of defined events.

Name Required Type Default Description Expert
staticlinks no staticlink[] Static link array. false

onClickTrigger example

{
    "staticlinks": [
        {
            "name": "Alert",
            "icon": "bi-globe",
            "onClickTrigger": [
                {
                    "channel": "Alert",
                    "event": "alert",
                    "data": "Hello World!"
                }
            ]
        }
    ]
}

Ein Staticlink-Objekt enthält folgende Attribute.

Name Required Type Default Description Expert
name yes String Menu name of the link. false
icon no String "bi-globe" CSS icon class of link, shown before its name. false
url no String URL to open in a new tab. false
onClickTrigger no onClickTrigger[] Array of onClickTrigger events. false

URL example

{
    "name": "Hamburg",
    "icon": "bi-globe",
    "url": "http://www.hamburg.de"
}

onClickTrigger example

{
    "name": "Alert",
    "icon": "bi-globe",
    "onClickTrigger": [
        {
            "channel": "Alert",
            "event": "alert",
            "data": "Hello World!"
        }
    ]
}

Portalconfig.menu.staticlinks.staticlink.onClickTrigger

Defines an event trigger, possibly containing a payload.

Name Required Type Default Description Expert
channel yes String Radio channel name. false
event yes String Radio channel's event name of the event to be triggered. false
data no String/Boolean/Number Payload to be sent along. false

Example

{
    "channel": "Alert",
    "event": "alert",
    "data": "Hello World!"
}

Themenconfig

The Themenconfig entry defines the contents and their order in the topic selection. Depending on your treeType configuration, the Fachdaten section may also contain folder structures.

Name Required Type Default Description Expert
Hintergrundkarten yes Hintergrundkarten Background map definition. false
Fachdaten no Fachdaten Technical data definition. false
Fachdaten_3D no Fachdaten_3D Technical data definition used in 3D mode. false
Fachdaten_Zeit no Fachdaten_Zeit Definition of WMS-T layers in their own folder. false

Example

{
    "Themenconfig": {
        "Hintergrundkarten": {},
        "Fachdaten": {},
        "Fachdaten_3D": {},
        "Fachdaten_Zeit": {}
    }
}

Themenconfig.Hintergrundkarten

Background map definition.

Name Required Type Default Description Expert
name no String "Hintergrundkarten" For treeType default and custom, name of the background map button area. false
Layer yes Layer/GroupLayer[] Layer definition. false
Ordner no Ordner[] Folder definition. false

Example

{
    "Hintergrundkarten": {
        "name": "My background maps",
        "Layer": [
            {
                "id": "123"
            }
        ]
    }
}

Themenconfig.Fachdaten

Technical data definition.

Name Required Type Default Description Expert
name no String "Fachdaten" For treeType default and custom, name of the technical data button area. false
Layer yes Layer/GroupLayer[] Layer definition. false
Ordner no Ordner[] Folder definition. false

Example

{
    "Fachdaten": {
        "name": "My technical data",
        "Layer": [
            {
                "id": "123"
            }
        ]
    }
}

Themenconfig.Fachdaten_3D

3D data definition for the 3D mode in treeType custom and default. Only shown when 3D mode is active.

Name Required Type Default Description Expert
name no String "3D Daten" Name of the 3D data button area. false
Layer yes Layer[] 3D layer definition. false

Example

{
    "Fachdaten_3D": {
        "name": "My technical 3D data",
        "Layer": [
            {
            "id": "12883"
            }
        ]
    }
}

Themenconfig.Fachdaten_Zeit

Definition for WMS-T layers treeType custom and default. The layers can also be defined under Fachdaten.

Name Required Type Default Description Expert
name no String "common:tree.subjectDataTime" Name of the WMS-T layer button area. false
Layer yes Layer[] WMS-T layer definition. false

Example

{
    "Fachdaten_Zeit": {
        "name": "My Time Series",
        "Layer": [
            {
              "id": "my_wms_time"
            }
        ]
    }
}

Themenconfig.Ordner

Folder definition. Folders may also be nested. Folders can be configured below the "Fachdaten" and "Hintergrundkarten". With treeType 'default' the 3D data can also be configured as a folder under 'Fachdaten_3D'.

Name Required Type Default Description Expert
Titel yes String Folder title. false
Layer yes Layer/GroupLayer[] Layer definition. false
Ordner no Ordner[] Folder definition. false
isFolderSelectable no Boolean false Defines whether all layers of a folder can be de-/activated at once by using a checkbox. Only works if treetype="custom". If no flag is set, the global flag in config.js parameter tree.isFolderSelectable is used. false
invertLayerOrder no Boolean false Defines wheather the order of layers added to the map should be invert when clicking the folder. false

Example Fachdaten-folder with one layer

{
    "Fachdaten": {
        "Ordner": [
            {
                "Titel": "My folder",
                "Layer": [
                    {
                        "id": "123"
                    }
                ]
            }
        ]
    }
}

Example Hintergrundkarten-folder with 2 layers

{
    "Hintergrundkarten":{
        "Ordner": [{
            "Titel": "Maps",
            "isFolderSelectable": false,
            "Layer": [
                {
                    "name": "Aerial view",
                    "id": "123",
                    "visibility": true
                },
                {
                    "name": "City map",
                    "id": "456"
                }
            ]
        }]
    }
}

Example Hintergrundkarten-folder, next to it are configured layers

{
    "Hintergrundkarten":{
        "Ordner": [{
            "Titel": "Maps",
            "isFolderSelectable": false,
            "Layer": [
                {
                    "name": "Aerial view",
                    "id": "123",
                    "visibility": true
                },
                {
                    "name": "City map",
                    "id": "456"
                }
            ]
        }],
        "Layer": [{
            "name": "Old map",
            "id": "789"
        },
            ...
        ]
    }
}

Example Fachdaten-folder with a sub-folder that contains a layer

{
    "Fachdaten": {
        "Ordner": [
            {
                "Titel": "My first folder",
                "isFolderSelectable": true,
                "Ordner": [
                    {
                        "Titel": "My second folder",
                        "Layer": [
                            {
                                "id": "123"
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

Example Fachdaten-folder with a sub-folder holding a layer, where the first folder also has a layer defined

{
    "Fachdaten": {
        "Ordner": [
            {
                "Titel": "My first folder",
                "Ordner": [
                    {
                        "Titel": "My second folder",
                        "Layer": [
                            {
                                "id": "123"
                            }
                        ]
                    }
                ],
                "Layer": [
                    {
                        "id": "456"
                    }
                ]
            }
        ]
    }
}

Example Fachdaten-folder with an inverted order of layers

In this example layer 123 will be added to the map first. This leads to 456 being above 123.

{
    "Fachdaten": {
        "Ordner": [
            {
                "Titel": "My folder",
                "invertLayerOrder": true,
                "Layer": [
                    {
                        "id": "123"
                    },
                    {
                        "id": "456"
                    }
                ]
            }
        ]
    }
}

Example 3D data folder with subfolders, treeType 'default'.

 "Fachdaten_3D": {
      "Ordner": [
        {
          "Titel": "3D Gebäudedaten",
          "Layer": [
            {
              "id": "12884",
              "name": "Gebäude LoD2",
              "visibility": true
            }
          ]
        },
        {
          "Titel": "3D Basisdaten",
          "Layer": [
            {
              "id": "12883",
              "name": "Gelände",
              "visibility": true
            }
          ]
        }
      ]
    }

Themenconfig.GroupLayer

Group layer definition to de-/activate multiple layers in one click.

Name Required Type Default Description Expert
id yes String Internal layer id to reference this layer. The actual services are referenced in the children field. Please mind that this id must not collide with any id in the services.json. false
children yes Layer[] In this array the multiple grouped services are defined. false
name no String Layer name. false
transparency no Integer 0 Layer transparency. false
visibility no Boolean false Layer visibility. false
supported no String[] ["2D", "3D"] List of modes the layer may be used in. false
layerAttribution no String services.json value. HTML string shown when the layer is active. false
legendURL no String services.json value. URL used to request the legend graphic. Deprecated, please use "legend" instead. false
legend no Boolean/String services.json value. URL used to request the legend graphic. Use true to dynamically generate the legend from a WMS request or the styling. If of type string, it's expected to be a path to an image or a PDF file. false
maxScale no String services.json value. Maximum scale in which the layer is still shown. false
minScale no String services.json value. Minimum scale in which the layer is still shown. false
autoRefresh no Integer Automatically reload layer every autoRefresh ms. Minimum value is 500. false
isNeverVisibleInTree no Boolean false If true, the layer is never visible in the topic selection tree. false
urlIsVisible no Boolean true Whether the service URL should be shown in the layer information window. false

Example

{
    "id": "myId",
    "name": "myGroupLayer",
    "children": [
        {
            "id": "123",
            "name": "myLayer_1"
        },
        {
            "id": "456",
            "name": "myLayer_2"
        }
    ]
}

Themenconfig.Layer

Layer definition. Multiple ways to define layers exist. Most attributes are defined in the services.json, but may be overwritten in the layer definition.

Name Required Type Default Description Expert
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. false
name no String Layer name. false
capabilitiesUrl no String services.json value. Service's capabilities URL false
entities yes Entity3D[] Models to be shown. false
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. false
transparency no Integer 0 Layer transparency. false
visibility no Boolean false Layer visibility. false
supported no String[] ["2D", "3D"] List of modes the layer may be used in. false
layerAttribution no String services.json value. HTML string shown when the layer is active. false
legendURL no String services.json value. URL used to request the legend graphic. Deprecated, please use "legend" instead. false
legend no Boolean/String services.json value. URL used to request the legend graphic. Use true to dynamically generate the legend from a WMS request or the styling. If of type string, it's expected to be a path to an image or a PDF file. false
maxScale no String services.json value. Maximum scale in which the layer is still shown. false
minScale no String services.json value. Minimum scale in which the layer is still shown. false
autoRefresh no Integer Automatically reload layer every autoRefresh ms. Minimum value is 500. false
isNeverVisibleInTree no Boolean false If true, the layer is never visible in the topic selection tree. false
urlIsVisible no Boolean true Whether the service URL should be shown in the layer information window. false
filterRefId no Integer Referencing to a configured filter. It is the order (index) of Layer in filter. Starting with 0. false
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 false
isPointLayer no Boolean false Whether the (vector) layer only consists of point features (only relevant for WebGL rendering) false

Example with one ID

{
    "id": "123"
}

Example with an array of IDs

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

Themenconfig.Layer.WMS

List of typical WMS attributes.

Name Required Type Default Description Expert
name no String/String[] Layer name. If the attribute styles is configured, name must be of type String[]. false
extent no Extent [454591, 5809000, 700000, 6075769] Only relevant for 3D mode. Extent of the layer. If not specified, it will be used Extent of the MapView. false
featureCount no Integer 1 Amount of feature to be returned at maximum on a GetFeatureInfo request. false
gfiAsNewWindow no gfiAsNewWindow null Relevant if "text/html" is used. true
styles no String[] Will be sent to the server if defined. The server will interpret and apply these styles and return the corresponding styled tiles. true

Example

{
    "id": "123456",
    "name": "MyWMSLayerName",
    "transparency": 0,
    "visibility": true,
    "supported": ["2D"],
    "extent": [454591, 5809000, 700000, 6075769],
    "layerAttribution": "MyBoldAttribution for layer 123456",
    "legend": "https://myServer/myService/legend.pdf",
    "maxScale": "100000",
    "minScale": "1000",
    "autoRefresh": "10000",
    "isNeverVisibleInTree": false,
    "featureCount": 2,
    "gfiAsNewWindow": {
        "name": "_blank",
        "specs": "width=800,height=700"
    },
    "styles": ["firstStyle", "secondStyle"]
}

Themenconfig.Layer.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 Expert
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. true
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) true

Example

#!json
{
    "id": "123456",
    // (...)
    "gfiAsNewWindow": {
        "name": "_blank",
        "specs": "toolbar=yes,scrollbars=yes,resizable=yes,top=0,left=500,width=800,height=700"
    },
    // (...)
}

Themenconfig.Layer.WFS

List of typical WFS query attributes for highlightFeaturesByAttribute. For the invocation parameters see urlParameter.

Example invocations:
?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 Expert
styleId yes String Id of the style. Id defined in the style.json. false
featurePrefix yes String Search prefix for the WFS query - e.g. app:. true
wildCard yes String The wildcard character for the WFS query -e.g. % true
singleChar yes String The single character for the WFS query - e.g. # true
escapeChar yes String The escape character for the WFS query - e.g. | true
valueDelimiter no String The value delimiter for isIn queries attributeValue, defaulting to semicolon true

Example

#!json
{
    "id": "1",
    "styleId": "1",
    "visibility": false,
    "name": "Tierarten invasiv",
    "featurePrefix": "app:",
    "wildCard": "%",
    "singleChar": "#",
    "escapeChar": "!"
}

#### Themenconfig.Layer.Tileset

[inherits]: # (Themenconfig.Layer)

List of attributes typically used for tilesets.

|Name|Required|Type|Default|Description|
|----|--------|----|-------|-----------|
|hiddenFeatures|no|String[]|[]|List of IDs to be hidden in the plane.|
|**[cesium3DTilesetOptions](https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileset.html#.ConstructorOptions)**|no|**[cesium3DTilesetOption](#markdown-header-themenconfiglayertilesetcesium3dtilesetoption)**||Cesium 3D tileset options directly forwarded to the *Cesium tileset object*. E.g. `maximumScreenSpaceError` is relevant to the visibility.|

**Example**

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

Themenconfig.Layer.Tileset.cesium3DTilesetOption

Todo

Name Required Type Default Description
maximumScreenSpaceError no Number Todo

Example

{
    "cesium3DTilesetOptions": {
        "maximumScreenSpaceError": 6
    }
}

Themenconfig.Layer.Terrain

List of attributes typically used for Terrain.

Name Required Type Default Description
cesiumTerrainProviderOptions 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
    }
}

Themenconfig.Layer.Terrain.cesiumTerrainProviderOption

Todo

Name Required Type Default Description
requestVertexNormals no Boolean Todo

Example

{
    "cesiumTerrainProviderOptions": {
        "requestVertexNormals" : true
    }
}

Themenconfig.Layer.Entity3D

List of attributes typically used for Entities 3D.

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

Example

{
      "id": "123456",
      "name": "EntitiesLayerName",
      "visibility": true,
      "typ": "Entities3D",
      "entities": [
         {
            "url": "https://daten-hamburg.de/gdi3d/datasource-data/Simple_Building.glb",
           "attributes": {
             "name": "simple building 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"
      }
  },

Themenconfig.Layer.Entity3D.Attribute

Name Required Type Default Description Expert
name no String "" Todo false

Example

{
   "name": "Fernsehturm.kmz"
}

Themenconfig.Layer.StaticImage

This type allows loading images as georeferenced map layers. Supported formats are jpeg and png.

Name Required Type Default Description Expert
id yes String ID required to be unique. false
typ yes String "StaticImage" Sets the layer type to StaticImage, meaning static images will be displayed as layers. false
url yes String "https://meinedomain.de/bild.png" Link to the image that is to be shown as layer. false
name yes String "Static Image Name" Topic selection tree layer name. false
extent yes Extent [560.00, 5950.00, 560.00, 5945.00] Georeferences the image. The coordinates are expected to be in EPSG:25832, and refer to the top-left and bottom-right image corner. false

Example

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

Themenconfig.Layer.Vector

List of attributes typically used in vector layers. Vector layers are WFS, GeoJSON (EPSG:4326 only), SensorLayer, and Vector Tile Layer.

Name Required Type Default Description Expert
clusterDistance no Integer All features within this pixel radius are clustered to a single feature. ⚠️clusterDistance on WFS layers with polygon or line geometry results in the features not being displayed. false
extendedFilter no Boolean Defines whether the tool extendedFilter may use this layer. false
filterOptions no filterOption[] Filter options required by tool wfsFeatureFilter. false
mouseHoverField no String/String[] Attribute name or array thereorf to be shown on mouse hovering a feature. false
nearbyTitle no String/String[] Attribute name or array of features to be shown on nearby search results. false
additionalInfoField no String "name" Feature's attribute name to use in the search bar's hit list. Should this attribute not exist in a hit feature, the layer name is used instead. false
styleId no String Style ID. Resolved using the style.json file. false
styleGeometryType no String/String[] WFS style geometry type to reduce visible features to the ones sharing the given geometry types. More information. false
hitTolerance no String Click tolerance for hits in pixels when firing a GetFeatureInfo request. false
vtStyles no vtStyle[] Choosable external style definitions. Only available in a Vector Tile Layer. false
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 '<link rel=stylesheet ...>' in index.html false
loadingStrategy no String "bbox" Strategy function for loading features. Possible values are "bbox" or "all". More information. false

Example

#!json
{
    "id": "123456",
    "name": "MyVectorLayerName",
    "transparency": 0,
    "visibility": true,
    "supported": ["2D"],
    "extent": [454591, 5809000, 700000, 6075769],
    "layerAttribution": "MyBoldAttribution for layer 123456",
    "legend": "https://myServer/myService/legend.pdf",
    "maxScale": "100000",
    "minScale": "1000",
    "autoRefresh": "10000",
    "isNeverVisibleInTree": false,
    "clusterDistance": 60,
    "extendedFilter": true,
    "loadingStrategy": "all",
    "filterOptions": [
        {
            "fieldName": "myFirstAttributeToFilter",
            "filterName": "Filter_1",
            "filterString": ["*", "value1", "value2"],
            "filterType": "combo"
        },
        {
            "fieldName": "mySecondAttributeToFilter",
            "filterName": "Filter_2",
            "filterString": ["*", "value3", "value4"],
            "filterType": "combo"
        }
    ],
    "mouseHoverField": "name",
    "nearbyTitle": "name",
    "searchField": "name",
    "styleId": "123456",
    "hitTolerance": 50
},
{
    "id" : "11111",
    "name" : "local GeoJSON",
    "url" : "portal/master/test.json",
    "typ" : "GeoJSON",
    "gfiAttributes" : "showAll",
    "layerAttribution" : "nicht vorhanden",
    "legend" : true
}

Themenconfig.Layer.Vector.filterOption

Filter options used by the tool wfsFeatureFilter.

Name Required Type Default Description Expert
fieldName yes String Attribute name to filter by. false
filterName yes String Filter name in the tool. false
filterString yes String[] Array of attribute names filtering by is enabled. Using "*" will allow all values. false
filterType yes String Filter type. Only "combo" is supported. false

Example

{
    "fieldName": "myFirstAttributeToFilter",
    "filterName": "Filter_1",
    "filterString": ["*", "value1", "value2"],
    "filterType": "combo"
}

Themenconfig.Layer.Vector.vtStyle

Style definitions. Available for Vector Tile Layers only.

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

Example

{
    "id": "UNIQUE_ID",
    "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
    ]
}

Datatypes

This chapter defines expected data types.

Datatypes.Coordinate

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

Example integer coordinate

[561210, 5932600]

Example float coordinate

[561210.1458, 5932600.12358]

Datatypes.Extent

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

Example extent

[510000.0, 5850000.0, 625000.4, 6000000.0]

Datatypes.CustomObject

An object containing the required contents. Parameters depend on configuration, usage, and backend components.


Datatypes.LayerId

A string that refers to a layer id from the services-internet.json. In the example, the ID "1711" is used to refer to the layer "Krankenhäuser" in the services-internet.json of the city of Hamburg.

Example LayerId

"1711"