Plugin reference¶
- API
- AttributeTable
- Authentication
- BackgroundSwitcher
- Bookmark
- BottomBar
- CookiePopup
- Cyclomedia
- Editing
- FeatureForm
- FeatureSearch
- GeometryDigitizer
- HeightProfile
- Help
- HomeButton
- Identify
- LayerCatalog
- LayerTree
- LocateButton
- LoginUser
- MapPlugin
- MapComparePlugin
- MapCopyright
- MapExport
- MapFilter
- MapInfoTooltip
- MapLegend
- MapTip
- Measure
- NewsPopup
- Portal
- ProcessNotifications
- Redlining
- Reports
- Routing
- ScratchDrawing
- Settings
- Share
- StartupMarker
- TaskButton
- ThemeSwitcher
- TimeManager
- TopBar
- ZoomButton
- EditingSupport
- LocateSupport
- MeasurementSupport
- OverviewMap
- RedliningSupport
- ScaleBarSupport
- SnappingSupport
API¶
Exposes an API for interacting with QWC2 via window.qwc2
.
You can interact with the API as soon as the QWC2ApiReady
event is dispatched.
For example:
window.addEventListener("QWC2ApiReady", () => {
const {React} = window.qwc2.libs;
class MyPlugin extends React.Component {
render() {
return React.createElement("div", {}, "Hello World");
}
}
window.qwc2.addPlugin("MyPlugin", MyPlugin);
});
All following action functions are available:
I.e. setCurrentTask
is available via window.qwc2.setCurrentTask
.
Some of the core libraries (React, axios, ol, ...) are accessible via window.qwc2.libs
.
In addition, the following methods are available on window.qwc2
:
addPlugin(name,plugin,translations)
Add custom plugin
name
: An identifierplugin
: The plugin component classtranslations
: The plugin translation messages:{"<lang>": {<messages>}, ...}
removePlugin(name)
Remove custom plugin
name
: The identifier
addIdentifyAttributeCalculator(name,calcFunc)
Add custom attribute calculator (i.e. computed attributes which are added to GetFeatureInfo responses).
name
: An identifiercalcFunc
: The calculator function with signaturefunction(layer, feature)
The calcFunc
should return either a two-enty [name, value]
pair or a one-value [value]
array.
removeIdentifyAttributeCalculator(name)
Remove custom identify attribute calculator
name
: The identifier
addIdentifyExporter(name,exporterConfig)
Add custom identify exporter
name
: An identifierexporterFunc
: The exporter configuration
The exporter configuration is an object of the shape
{
id: "<id>",
title: "<title>",
allowClipboard: <true|false>,
export: (features, callback) => {
callback({
data: <blob>, type: "<mimeType>", filename: "<filename>"
});
}
}
removeIdentifyExporter(name)
Remove identify exporter
name
: The identifier
drawScratch(geomType,message,drawMultiple,callback,style)
Deprecated, use window.qwc2.drawGeometry
instead.
drawGeometry(geomType,message,callback,options)
Draw geometries, and return these as GeoJSON to the calling application.
geomType
:Point
,LineString
,Polygon
,Circle
orBox
.message
: A descriptive string to display in the tool taskbar.callback
: Afunction(result, crs)
, theresult
being an array of GeoJSON features, andcrs
the projection of the feature coordinates.options
: Optional configuration:drawMultiple
: Whether to allow drawing multiple geometries (default:false
).style
: A custom style object to use for the drawn features, in the same format asDEFAULT_FEATURE_STYLE
inqwc2/utils/FeatureStyles.js
.initialFeatures
: Array of initial geometries.snapping
: Whether snapping is available while drawing (default:false
).snappingActive
: Whether snapping is initially active (default:false
)
getState()
Return the current application state.
AttributeTable¶
Displaying the attribute table of layers in a dialog.
To make a layer available in the attribute table, create a a data resource and matching permissions for it in the qwc-admin-gui
.
The attribute table works for both read-only as well as read-write data resources.
This plugin queries the dataset via the editing service specified by
editServiceUrl
in config.json
(by default the qwc-data-service
).
Property | Type | Description | Default value |
---|---|---|---|
allowAddForGeometryLayers | bool |
Whether to allow adding records for datasets which have a geometry column. | undefined |
showEditFormButton | bool |
Whether to show a button to open the edit form for selected layer. Requires the Editing plugin to be enabled. | true |
showLimitToExtent | bool |
Whether to show the "Limit to extent" checkbox | undefined |
zoomLevel | number |
The zoom level for zooming to point features. | 1000 |
Authentication¶
Handles authentication
Invokes the the authentication service specified by authServiceUrl
in config.json
.
Property | Type | Description | Default value |
---|---|---|---|
clearLayerParam | bool |
Whether to clear the layer parameter from the URL on login. | undefined |
idleTimeout | number |
An idle timeout in seconds after which the user is automatically logged of. | undefined |
logoutTargetUrl | string |
An URL to redirect to on logout, instead of the viewer URL. | undefined |
requireLogin | bool |
Whether authentication is required, i.e. the viewer automatically redirects to the login page if no user is authenticated. | undefined |
BackgroundSwitcher¶
Map button for switching the background layer.
Property | Type | Description | Default value |
---|---|---|---|
position | number |
The position slot index of the map button, from the bottom (0: bottom slot). | 0 |
Bookmark¶
Allows managing user bookmarks.
Bookmarks are only allowed for authenticated users.
Requires permalinkServiceUrl
to point to a qwc-permalink-service
.
Property | Type | Description | Default value |
---|---|---|---|
side | string |
The side of the application on which to display the sidebar. | 'right' |
BottomBar¶
Bottom bar, displaying mouse coordinate, scale, etc.
Property | Type | Description | Default value |
---|---|---|---|
additionalBottomBarLinks | [{ label: string, labelMsgId: string, url: string, urlTarget: string, icon: string, }] |
Additional bottombar links | undefined |
displayCoordinates | bool |
Whether to display the coordinates in the bottom bar. | true |
displayScales | bool |
Whether to display the scale in the bottom bar. | true |
termsUrl | string |
The URL of the terms label anchor. | undefined |
termsUrlIcon | string |
Icon of the terms inline window. Relevant only when termsUrlTarget is iframe . |
undefined |
termsUrlTarget | string |
The target where to open the terms URL. If iframe , it will be displayed in an inline window, otherwise in a new tab. You can also use the :iframedialog:<dialogname>:<options> syntax to set up the inline window. |
undefined |
viewertitleUrl | string |
The URL of the viewer title label anchor. | undefined |
viewertitleUrlIcon | string |
Icon of the viewer title inline window. Relevant only when viewertitleUrl is iframe . |
undefined |
viewertitleUrlTarget | string |
The target where to open the viewer title URL. If iframe , it will be displayed in an inline window, otherwise in a new tab. You can also use the :iframedialog:<dialogname>:<options> syntax to set up the inline window. |
undefined |
CookiePopup¶
A simple popup to notify that cookies are used.
Cyclomedia¶
Cyclomedia integration for QWC2.
Property | Type | Description | Default value |
---|---|---|---|
apikey | string |
The Cyclomedia API key | undefined |
clientId | string |
OAuth client ID. | undefined |
credentialUserInfoFields | { username: string, password: string, } |
Fields from user_infos which contain username and password which will be pre-inserted into the login form. | undefined |
cyclomediaVersion | string |
The cyclomedia version. | '24.1' |
displayMeasurements | bool |
Whether to display Cyclomedia measurement geometries on the map. | true |
geometry | { initialWidth: number, initialHeight: number, initialX: number, initialY: number, initiallyDocked: bool, side: string, } |
Default window geometry with size, position and docking status. Positive position values (including '0') are related to top (InitialY) and left (InitialX), negative values (including '-0') to bottom (InitialY) and right (InitialX). | { initialWidth: 480, initialHeight: 640, initialX: 0, initialY: 0, initiallyDocked: false, side: 'left' } |
loginRedirectUri | string |
The relative path to the redirect login handling of oauth. | undefined |
logoutRedirectUri | string |
The relative path to the redirect logout handling of oauth. | undefined |
maxMapScale | number |
The maximum map scale above which the recordings WFS won't be displayed. | 5000 |
projection | string |
The projection to use for Cyclomedia. | 'EPSG:3857' |
Editing¶
Allows editing geometries and attributes of datasets.
The attribute form is generated from the QGIS attribute form configuration.
This plugin queries the dataset via the editing service specified by
editServiceUrl
in config.json
(by default the qwc-data-service
).
Property | Type | Description | Default value |
---|---|---|---|
allowCloneGeometry | bool |
Whether to enable the "Clone existing geometry" functionality. | true |
side | string |
The side of the application on which to display the sidebar. | 'right' |
snapping | bool |
Whether snapping is available when editing. | true |
snappingActive | {bool, string} |
Whether snapping is enabled by default when editing. Either false , edge , vertex or true (i.e. both vertex and edge). |
true |
width | string |
The default width of the editing sidebar, as a CSS width string. | "30em" |
FeatureForm¶
Displays queried feature attributes in a form.
The attribute form is generated from the QGIS attribute form configuration.
If the dataset it editable, allows editing the attributes directly in the displayed form.
This plugin queries the feature via the editing service specified by
editServiceUrl
in config.json
(by default the qwc-data-service
), rather than over WMS
GetFeatureInfo like the Identify
plugin.
Can be used as default identify tool by setting "identifyTool": "FeatureForm"
in config.json
.
Property | Type | Description | Default value |
---|---|---|---|
exitTaskOnResultsClose | bool |
Whether to clear the task when the results window is closed. | undefined |
geometry | { initialWidth: number, initialHeight: number, initialX: number, initialY: number, initiallyDocked: bool, side: string, } |
Default window geometry with size, position and docking status. Positive position values (including '0') are related to top (InitialY) and left (InitialX), negative values (including '-0') to bottom (InitialY) and right (InitialX). | { initialWidth: 320, initialHeight: 480, initialX: 0, initialY: 0, initiallyDocked: false, side: 'left' } |
FeatureSearch¶
Displays a dialog with a search form for configured QGIS feature searches with one or more input fields.
See Configuring the QGIS feature search.
Property | Type | Description | Default value |
---|---|---|---|
side | string |
The side of the application on which to display the sidebar. | 'right' |
GeometryDigitizer¶
Allows digitizing geometries to send to configured applications.
Configure the available target applications in themesConfig.json
:
{
"themes": {
"items": [{
...
"pluginData": {
"geometryLinks": ["<geomLinkName>", "<geomLinkName>", ...]
}
}],
},
"pluginData": {
"geometryLinks": [
{
"name": "<geomLinkName>", // Link name referenced in theme item
"title": "<geomLinkTitle>", // Link title, displayed in the selection combo
"geomType": ["<geomType>", "<geomType>"] // Supported geometry types (Point, LineString, Polygon)
"url": "<targetApplicationUrl>", // Application target URL, receiving the POST submit
"params": {"<key>": "<value>", ...} // Optional: additional form parameters to post to URL
"target": "<target>" | { // Optional: form POST target which to display the result
"iframedialog": true, // Use an iframe dialog
"w": <dialogWidth>, // Dialog width
"h": <dialogHeight> // Dialog height
}
}
]
}
}
Property | Type | Description | Default value |
---|---|---|---|
styleActive | { strokeColor: array, strokeWidth: number, strokeDash: array, fillColor: array, } |
The style of active geometries (i.e. supported by the selected application) | { strokeColor: [0, 160, 0, 1], fillColor: [0, 160, 0, 0.33] } |
styleInactive | { strokeColor: array, strokeWidth: number, strokeDash: array, fillColor: array, } |
The style of inactive (i.e. not supported by the selected application) | { strokeColor: [127, 127, 127, 1], fillColor: [127, 127, 127, 0.33] } |
HeightProfile¶
Displays a height profile along a measured line.
Triggered automatically when a line is measured via the Measure
plugin.
Requires elevationServiceUrl
in config.json
to point to a qwc-elevation-service
.
The print height profile functionality requires a template located by default at assets/templates/heightprofileprint.html
with containing a container element with id=heightprofilecontainer
.
Property | Type | Description | Default value |
---|---|---|---|
height | number |
The height of the height profile widget in pixels. | 150 |
heightProfilePrecision | number |
The precision of displayed and exported values (0: no decimals, 1: 1 decimal position, etc). | 0 |
samples | number |
The number of elevation samples to query. | 500 |
templatePath | string |
Template location for the height profile print functionality | ":/templates/heightprofileprint.html" |
Help¶
Displays a custom help dialog in a sidebar.
Define the help contents by specifying the bodyContentsFragmentUrl
prop.
Property | Type | Description | Default value |
---|---|---|---|
bodyContentsFragmentUrl | string |
URL to a document containing a HTML fragment to display in the Help sidebar. | undefined |
side | string |
The side of the application on which to display the sidebar. | 'right' |
HomeButton¶
Map button for reverting to the home extent of the theme.
Property | Type | Description | Default value |
---|---|---|---|
position | number |
The position slot index of the map button, from the bottom (0: bottom slot). | 5 |
themeFlagBlacklist | [string] |
Omit the button in themes matching one of these flags. | undefined |
themeFlagWhitelist | [string] |
Only show the button in themes matching one of these flags. | undefined |
Identify¶
Displays queried feature attributes.
Uses WMS GetFeatureInfo to query features and displays the result in table, as a HTML fragment or as plain text based on the supported GetFeatureInfo format.
Extendable in combination with the qwc-feature-info-service
, which provides support
for customized queries and templates for the result presentation.
Property | Type | Description | Default value |
---|---|---|---|
attributeCalculator | func |
Optional function for computing derived attributes. See js/IdentifyExtensions.js for details. This prop can be specified in the appConfig.js cfg section. | undefined |
attributeTransform | func |
Optional function for transforming attribute values. See js/IdentifyExtensions.js for details. This prop can be specified in the appConfig.js cfg section. | undefined |
clearResultsOnClose | bool |
Whether to clear the identify results when exiting the identify tool. | true |
customExporters | array |
Optional list of custom exporters to offer along with the built-in exporters. See js/IdentifyExtensions.js for details. This prop can be specified in the appConfig.js cfg section. | [] |
displayResultTree | bool |
Whether to display a tree overview of results (as opposed to a flat list of results). | true |
enableExport | {bool, array} |
Whether to enable the export functionality. Either true|false or a list of single allowed formats (builtin formats: json , geojson , csv , csvzip ) |
true |
exitTaskOnResultsClose | bool |
Whether to clear the task when the results window is closed. | undefined |
exportGeometry | bool |
Whether to include the geometry in exported features. Default: true . |
true |
featureInfoReturnsLayerName | bool |
Whether to assume that XML GetFeatureInfo responses specify the technical layer name in the name attribute, rather than the layer title. |
true |
geometry | { initialWidth: number, initialHeight: number, initialX: number, initialY: number, initiallyDocked: bool, side: string, } |
Default window geometry with size, position and docking status. Positive position values (including '0') are related to top (InitialY) and left (InitialX), negative values (including '-0') to bottom (InitialY) and right (InitialX). | { initialWidth: 240, initialHeight: 320, initialX: 0, initialY: 0, initiallyDocked: false, side: 'left' } |
highlightAllResults | bool |
Whether to highlight all results if no result is hovered | true |
initialRadiusUnits | string |
The initial radius units of the identify dialog in radius mode. One of 'm', 'ft', 'km', 'mi'. | 'm' |
params | object |
Extra params to append to the GetFeatureInfo request (i.e. FI_POINT_TOLERANCE , FI_LINE_TOLERANCE , feature_count , ...). Additionally, region_feature_count and radius_feature_count are supported. |
undefined |
replaceImageUrls | bool |
Whether to replace an attribute value containing an URL to an image with an inline image. | true |
LayerCatalog¶
Displays a pre-configured catalog of external layers in a window.
Configured through a catalog JSON containing a tree of external layer identifiers.
For wms
layers, sublayers: false
denotes that the sublayer structure of the added layer should not
be exposed in the layer tree.
Example:
{
"catalog": [
{
"title": "Öffentlicher Verkehr swissTLMRegio",
"resource": "wms:http://wms.geo.admin.ch#ch.swisstopo.vec200-transportation-oeffentliche-verkehr",
"sublayers": false
},
{
"title": "Gewässerschutz",
"resource": "wms:https://geo.so.ch/api/wms#ch.so.afu.gewaesserschutz[50]"
},
{
"title": "Landeskarten",
"sublayers": [
{
"title": "Landeskarte 1:1 Million | LK1000",
"resource": "wms:http://wms.geo.admin.ch#ch.swisstopo.pixelkarte-farbe-pk1000.noscale"
},
{
"title": "Landeskarte 1:100`000 | LK100",
"resource": "wms:http://wms.geo.admin.ch#ch.swisstopo.pixelkarte-farbe-pk100.noscale"
}
]
}
]
}
Property | Type | Description | Default value |
---|---|---|---|
catalogUrl | string |
The URL to the catalog JSON file. | undefined |
geometry | { initialWidth: number, initialHeight: number, initialX: number, initialY: number, initiallyDocked: bool, side: string, } |
Default window geometry with size, position and docking status. Positive position values (including '0') are related to top (InitialY) and left (InitialX), negative values (including '-0') to bottom (InitialY) and right (InitialX). | { initialWidth: 320, initialHeight: 320, initialX: 0, initialY: 0, initiallyDocked: false, side: 'left' } |
levelBasedIndentSize | bool |
Whether to increase the indent size dynamically according to the current level (true ) or keep the indent size constant (false ). |
true |
LayerTree¶
Displays the map layer tree in a sidebar.
The print legend functionality requires a template located by default at assets/templates/legendprint.html with containing a container element with id=legendcontainer.
Property | Type | Description | Default value |
---|---|---|---|
addLayerSeparator | func |
Whether to allow adding separator entries in the layer tree, useful for organizing the tree. | undefined |
allowCompare | bool |
Whether to enable the compare function. Requires the MapCompare plugin. |
true |
allowImport | bool |
Whether to allow importing external layers. | true |
allowMapTips | bool |
Whether to allow enabling map tips. | true |
allowSelectIdentifyableLayers | bool |
Whether to allow selection of identifyable layers. The showQueryableIcon property should be true to be able to select identifyable layers. |
false |
bboxDependentLegend | {bool, string} |
Whether to display a BBOX dependent legend. Can be true|false|"theme" , latter means only for theme layers. |
false |
enableLegendPrint | bool |
Whether to enable the legend print functionality. | true |
enableServiceInfo | bool |
Whether to display a service info button to display the WMS service metadata. | true |
enableVisibleFilter | bool |
Whether to display a button to filter invisible layers from the layertree. | true |
extraLegendParameters | string |
Additional parameters to pass to the GetLegendGraphics request- | undefined |
flattenGroups | bool |
Whether to display a flat layer tree, omitting any groups. | false |
grayUnchecked | bool |
Whether to display unchecked layers gray in the layertree. | true |
groupTogglesSublayers | bool |
Whether toggling a group also toggles all sublayers. | false |
infoInSettings | bool |
Whether to display the layer info button inside the layer settings menu rather than next to the layer title. | true |
layerInfoGeometry | { initialWidth: number, initialHeight: number, initialX: number, initialY: number, initiallyDocked: bool, } |
Default layer info window geometry with size, position and docking status. | { initialWidth: 480, initialHeight: 480, initialX: null, initialY: null, initiallyDocked: false } |
onlyGroups | bool |
Whether to only display layer groups but not individual layers in layertree. | false |
scaleDependentLegend | {bool, string} |
Whether to display a scale dependent legend. Can be true|false|"theme" , latter means only for theme layers. |
undefined |
showAttributeTableLink | bool |
Whether to display an icon linking to the layer attribute table in the layer options menu. | undefined |
showLegendIcons | bool |
Whether to display legend icons. | true |
showQueryableIcon | bool |
Whether to display the queryable icon to indicate that a layer is identifyable. | true |
showRootEntry | bool |
Whether to display the root entry of the layertree. | true |
showToggleAllLayersCheckbox | bool |
Whether to display a checkbox to toggle all layers. | true |
side | string |
The side of the application on which to display the sidebar. | 'right' |
templatePath | string |
Template location for the legend print functionality | ":/templates/legendprint.html" |
width | string |
The initial width of the layertree, as a CSS width string. | "25em" |
LocateButton¶
Map button for controling the locate (GPS) state.
Property | Type | Description | Default value |
---|---|---|---|
position | number |
The position slot index of the map button, from the bottom (0: bottom slot). | 2 |
themeFlagBlacklist | [string] |
Omit the button in themes matching one of these flags. | undefined |
themeFlagWhitelist | [string] |
Only show the button in themes matching one of these flags. | undefined |
LoginUser¶
Displays the currently logged in user.
MapPlugin¶
The main map component.
Property | Type | Description | Default value |
---|---|---|---|
mapOptions | { zoomDuration: number, enableRotation: bool, rotation: number, panStepSize: number, panPageSize: number, constrainExtent: bool, kineticPanParams: object, } |
Zoom duration in ms, rotation in degrees, panStepSize and panPageSize as fraction of map width/height. | {} |
showLoading | bool |
Whether to display the loading spinner when layers are loading. | true |
swipeGeometryTypeBlacklist | [string] |
A list of layer geometry types to ignore when determining the top-most layer to compare. | [] |
swipeLayerNameBlacklist | [string] |
A list of layer names to ignore when determining the top-most layer to compare. You can use * as a whildcard character. |
[] |
toolsOptions | object |
Map tool configuraiton options. Refer to the sample config.json. | {} |
MapComparePlugin¶
Allows comparing the top layer with the rest of the map.
Activated through a checkbox in the LayerTree.
MapCopyright¶
Displays layer attributions in the bottom right corner of the map.
Property | Type | Description | Default value |
---|---|---|---|
prefixCopyrightsWithLayerNames | bool |
Whether to prepend the layer name to the attribution string. | undefined |
showThemeCopyrightOnly | bool |
Whether to only display the attribution of the theme, omitting external layers. | undefined |
MapExport¶
Allows exporting a selected portion of the map to a variety of formats.
Property | Type | Description | Default value |
---|---|---|---|
allowedFormats | [string] |
Whitelist of allowed export format mimetypes. If empty, supported formats are listed. | undefined |
allowedScales | {[number], bool} |
List of scales at which to export the map. If empty, scale can be freely specified. If false , the map can only be exported at the current scale. |
undefined |
defaultFormat | string |
Default export format mimetype. If empty, first available format is used. | undefined |
defaultScaleFactor | number |
The factor to apply to the map scale to determine the initial export map scale (if allowedScales is not false ). |
1 |
dpis | [number] |
List of dpis at which to export the map. If empty, the default server dpi is used. | undefined |
exportExternalLayers | bool |
Whether to include external layers in the image. Requires QGIS Server 3.x! | true |
fileNameTemplate | string |
Template for the name of the generated files when downloading. | '{theme}_{timestamp}' |
formatConfiguration | { format: [{ name: string, extraQuery: string, formatOptions: string, baseLayer: string, }], } |
Custom export configuration per format. If more than one configuration per format is provided, a selection combo will be displayed. extraQuery will be appended to the query string (replacing any existing parameters).formatOptions will be passed as FORMAT_OPTIONS.baseLayer will be appended to the LAYERS instead of the background layer. |
undefined |
pageSizes | [{ name: string, width: number, height: number, }] |
List of image sizes to offer, in addition to the free-hand selection. The width and height are in millimeters. | [] |
side | string |
The side of the application on which to display the sidebar. | 'right' |
MapFilter¶
Allows filtering the map content via QGIS Server WMS FILTER.
See Map filtering.
Property | Type | Description | Default value |
---|---|---|---|
allowCustomFilters | bool |
Whether to allow custom filters. | undefined |
allowFilterByGeom | bool |
Whether to allow filter by geometry. Requires the filter_geom plugin from qwc-qgis-server-plugins, and the filter will only be applied to postgis layers. | undefined |
allowFilterByTime | bool |
Whether to display the temporal filter if temporal dimensions are found. | true |
highlightStyle | { strokeColor: array, strokeWidth: number, strokeDash: array, fillColor: array, } |
The style used for highlighting filter geometries. | { strokeColor: [0, 0, 0], fillColor: [255, 255, 0, 0.25] } |
position | number |
The position slot index of the map button, from the bottom (0: bottom slot). Set to -1 to hide the button. | 5 |
side | string |
The side of the application on which to display the sidebar. | undefined |
MapInfoTooltip¶
Provides map context information when right-clicking on the map.
Displays the coordinates at the picked position by default.
If elevationServiceUrl
in config.json
to points to a qwc-elevation-service
,
the height at the picked position is also displayed.
If mapInfoService
in config.json
points to a qwc-mapinfo-service
, additional
custom information according to the qwc-mapinfo-service
configuration is returned.
You can pass additional plugin components to the MapInfoTooltip
in appConfig.js
:
MapInfoTooltipPlugin: MapInfoTooltipPlugin([FirstPlugin, SecondPlugin])
where a Plugin is a React component of the form
class MapInfoTooltipPlugin extends React.Component {
static propTypes = {
point: PropTypes.object,
closePopup: PropTypes.func
}
render() { return ...; }
};
Property | Type | Description | Default value |
---|---|---|---|
elevationPrecision | number |
The number of decimal places to display for elevation values. | 0 |
plugins | array |
Additional plugin components for the map info tooltip. | [] |
MapLegend¶
Displays the map legend in a floating dialog.
The user can toggle whether to display only layers which are enabled, visible in the current extent and/or visible at the current scale.
See https://docs.qgis.org/3.28/en/docs/server_manual/services/wms.html#wms-getlegendgraphic for supported extra legend params.
Property | Type | Description | Default value |
---|---|---|---|
addGroupTitles | bool |
Whether to add group titles to the legend. | false |
addLayerTitles | bool |
Whether to add layer titles to the legend. Note that often the legend image itself already contains the layer title. | false |
bboxDependentLegend | bool |
Whether to display a BBOX-dependent legend by default. | false |
excludeLayers | array |
List of layernames to exclude from the legend. | [] |
extraLegendParameters | string |
Extra parameters to add to the GetLegendGraphics request. | undefined |
geometry | { initialWidth: number, initialHeight: number, initialX: number, initialY: number, initiallyDocked: bool, side: string, } |
Default window geometry with size, position and docking status. A locked window is not closeable and not resizeable. Positive position values (including '0') are related to top (InitialY) and left (InitialX), negative values (including '-0') to bottom (InitialY) and right (InitialX). | { initialWidth: 320, initialHeight: 320, initialX: 0, initialY: 0, initiallyDocked: false, side: 'left' } |
lockedWindow | bool |
Whether the legend window is locked (always visible, not moveable or closeable). Set position and size via geometry . |
undefined |
onlyVisibleLegend | bool |
Whether to only include enabled layers in the legend by default. | false |
scaleDependentLegend | bool |
Whether to display a scale-dependent legend by default. | false |
MapTip¶
Displays maptips by hovering over features on the map.
Queries the map tips configured in the QGIS layer properites over GetFeatureInfo.
The map tip needs to be configured in QGIS Layer Properties → Display.
Property | Type | Description | Default value |
---|---|---|---|
layerFeatureCount | number |
The maximum number of feature maptips to display for a single layer. | 5 |
maxHeight | string |
The maximum height of the maptip popop bubble, as a CSS string. | "15em" |
maxWidth | string |
The maximum height of the maptip popop bubble, as a CSS string. | "20em" |
showFeatureSelection | bool |
Whether to show the maptip feature selection on the map or not | true |
Measure¶
Allows measuring points/lines/areas on the map.
Property | Type | Description | Default value |
---|---|---|---|
showMeasureModeSwitcher | bool |
Whether to show the widget to switch between measure modes. | true |
snapping | bool |
Whether snapping is available when editing. | true |
snappingActive | {bool, string} |
Whether snapping is enabled by default when editing. Either false , edge , vertex or true (i.e. both vertex and edge). |
true |
NewsPopup¶
Displays a newsletter in a popup dialog.
The popup won't be dispayed anymore, if the user chooses so, until a newer revision is published (specified via newsRev prop).
Property | Type | Description | Default value |
---|---|---|---|
newsDocument | string |
URL to the news HTML document to display in the popup. | undefined |
newsRev | string |
Revision of the document. | undefined |
showInSidebar | bool |
Whether to show the news in a sidebar instead of a popup. | undefined |
side | string |
The side of the application on which to display the sidebar. | undefined |
Portal¶
Displays a landing lage, consisting of a full-screen theme switcher and a configurable menu.
Property | Type | Description | Default value |
---|---|---|---|
bottomBarLinks | [{ href: string, label: string, labelmsgid: string, target: string, }] |
Links to show in the portal bottom bar | undefined |
logo | string |
Name of a logo image below assets/img. | undefined |
menuItems | array |
Portal menu items, in the same format as the TopBar menu items. | [] |
showMenuOnStartup | bool |
Whether the menu should be visible on startup. | undefined |
topBarText | string |
Portal title text to show in the top bar. | undefined |
Print¶
Invokes QGIS Server WMS GetPrint to print the map to PDF.
Uses the print layouts defined in the QGIS project.
Property | Type | Description | Default value |
---|---|---|---|
allowGeoPdfExport | bool |
Whether to allow GeoPDF export. Requires QGIS Server 3.32 or newer. | undefined |
defaultDpi | number |
The default print dpi. | 300 |
defaultScaleFactor | number |
The factor to apply to the map scale to determine the initial print map scale. | 0.5 |
displayPrintSeries | bool |
Show an option to print a series of extents. | false |
displayRotation | bool |
Whether to display the printing rotation control. | true |
fileNameTemplate | string |
Template for the name of the generated files when downloading. | '{theme}_{timestamp}' |
formats | [string] |
Export layout format mimetypes. If format is not supported by QGIS Server, print will fail. | ['application/pdf', 'image/jpeg', 'image/png', 'image/svg'] |
gridInitiallyEnabled | bool |
Whether the grid is enabled by default. | false |
hideAutopopulatedFields | bool |
Whether to hide form fields which contain autopopulated values (i.e. search result label). | undefined |
inlinePrintOutput | bool |
Whether to display the print output in an inline dialog instead triggering a download. | false |
printExternalLayers | bool |
Whether to print external layers. Requires QGIS Server 3.x! | true |
scaleFactor | number |
Scale factor to apply to line widths, font sizes, ... of redlining drawings passed to GetPrint. | 1.9 |
side | string |
The side of the application on which to display the sidebar. | 'right' |
ProcessNotifications¶
Adds support for displaying notifications of background processes.
Only useful for third-party plugins which use this functionality.
Redlining¶
Allows drawing figures and text labels on the map.
Property | Type | Description | Default value |
---|---|---|---|
allowGeometryLabels | bool |
Whether to allow labeling geometric figures. | true |
defaultAreaUnit | string |
Default area unit. Options: metric, imperial, sqm, ha, sqkm, sqft, acre, sqmi | 'metric' |
defaultBorderColor | array |
Default border color. In format [r, g, b, a]. | [255, 0, 0, 1] |
defaultFillColor | array |
Default fill color. In format [r, g, b, a]. | [255, 255, 255, 1] |
defaultLengthUnit | string |
Default length unit. Options: metric, imperial, m, km, ft, mi | 'metric' |
hiddenTools | array |
Tools to hide. Available tools: Circle, Ellipse, Square, Box, HandDrawing, Transform, NumericInput, Buffer, Export. | [] |
snapping | bool |
Whether snapping is available when editing. | true |
snappingActive | {bool, string} |
Whether snapping is enabled by default when editing. Either false , edge , vertex or true (i.e. both vertex and edge). |
true |
Reports¶
Allow generating reports for selected features.
This plugin displays all available reports for the current theme, allows selecting one or more or all features of the layer, and finally generating an aggregated report for all selected features.
Requires documentServiceUrl
in config.json
to point to a qwc-document-service
.
Property | Type | Description | Default value |
---|---|---|---|
side | string |
The side of the application on which to display the sidebar. | undefined |
Routing¶
Compute routes and isochrones.
Requites routingServiceUrl
in config.json
pointing to a Valhalla routing service.
Property | Type | Description | Default value |
---|---|---|---|
enabledModes | [string] |
List of enabled routing modes. | ["auto", "heavyvehicle", "transit", "bicycle", "pedestrian"] |
enabledProviders | [string] |
List of search providers to use for routing location search. | ["coordinates", "nominatim"] |
geometry | { initialWidth: number, initialHeight: number, initialX: number, initialY: number, initiallyDocked: bool, side: string, } |
Default window geometry with size, position and docking status. Positive position values (including '0') are related to top (InitialY) and left (InitialX), negative values (including '-0') to bottom (InitialY) and right (InitialX). | { initialWidth: 320, initialHeight: 640, initialX: 0, initialY: 0, initiallyDocked: true, side: 'left' } |
showPinLabels | bool |
Whether to label the routing waypoint pins with the route point number. | true |
zoomAuto | bool |
Automatically zoom to the extent of the route | true |
ScratchDrawing¶
Task which which can be invoked by other tools to draw a geometry and pass it to a callback.
Only useful for third-party code, i.e. over the JavaScript API.
Invoke as setCurrentTask("ScratchDrawing", null, null, {callback: <function(features, crs)>});
Settings¶
Settings panel.
Allows configuring language and color scheme.
Property | Type | Description | Default value |
---|---|---|---|
colorSchemes | [{ title: string, titleMsgId: string, value: string, }] |
List of available color schemes. Value is the css class name, title/titleMsgId the display name. | [] |
languages | [{ title: string, titleMsgId: string, value: string, }] |
List of available languages. Value is the lang code, title/titleMsgId the display name. | [] |
showDefaultThemeSelector | bool |
Whether to show a selector to set the default theme/bookmark (of a logged in user). | true |
side | string |
The side of the application on which to display the sidebar. | 'right' |
Share¶
Share the current map as a URL/permalink.
Compact permalinks will be generated if permalinkServiceUrl
in config.json
points to a qwc-permalink-service
.
Property | Type | Description | Default value |
---|---|---|---|
showLink | bool |
Show the map URL. | true |
showQRCode | bool |
Show the QR code of the map URL. | true |
showSocials | {bool, [string]} |
Show the social buttons. Either true or false to enable/disable all, or an array of specific buttons to display (possible choices: email , facebook , twitter , linkedin , whatsapp ). |
true |
side | string |
The side of the application on which to display the sidebar. | 'right' |
StartupMarker¶
Displays a marker when starting up the viewer.
The marked is displayed in the center of the map if c=<x>,<y>&hc=1
is set in the URL.
Property | Type | Description | Default value |
---|---|---|---|
removeMode | string |
When to remove the marker. Possible choices: onpan, onzoom, onclickonmarker. | 'onpan' |
TaskButton¶
Generic map button to launch a task.
Property | Type | Description | Default value |
---|---|---|---|
icon | string |
The icon name. | undefined |
mode | string |
The task mode. | undefined |
position | number |
The position slot index of the map button, from the bottom (0: bottom slot). | 1 |
task | string |
The task name. | undefined |
themeFlagBlacklist | [string] |
Omit the button in themes matching one of these flags. | undefined |
themeFlagWhitelist | [string] |
Only show the button in themes matching one of these flags. | undefined |
ThemeSwitcher¶
Theme switcher panel.
Property | Type | Description | Default value |
---|---|---|---|
collapsibleGroups | bool |
Whether to allow collapsing theme groups. | undefined |
hideAddThemeButton | bool |
Whether to hide the add theme button. Note: the button will also be hidden if the global option allowAddingOtherThemes is false . |
undefined |
hideAddThemeLayersButton | bool |
Whether to hide the add theme layers button. Note: the button will also be hidden if the global option allowAddingOtherThemes is false . |
undefined |
showDefaultThemeSelector | bool |
Whether to show an icon to select the default theme/bookmark (of a logged in user). | true |
showLayerAfterChangeTheme | bool |
Whether to show the LayerTree by default after switching the theme. | false |
showThemeFilter | bool |
Wether to show the theme filter field in the top bar. | true |
side | string |
The side of the application on which to display the sidebar. | 'right' |
themeLayersListWindowSize | { width: number, height: number, } |
The default window size for the theme layers dialog. | {width: 400, height: 300} |
width | string |
Default width as a CSS string. | "50%" |
TimeManager¶
Allows controling the time dimension of temporal WMS layers.
Property | Type | Description | Default value |
---|---|---|---|
cursorFormat | string |
The format of the time cursor label. Either date , time or datetime . |
"datetime" |
dateFormat | string |
The date format in the time controls, i.e. YYYY-MM-DD. | "YYYY-MM-DD[\n]HH:mm:ss" |
defaultAnimationInterval | number |
The default interval for the temporal animation, in seconds. | 1 |
defaultEnabled | bool |
Default for TimeManager enabled when loading application. true or false |
false |
defaultFeatureCount | number |
The default number of features that will be requested. | 100 |
defaultStepSize | number |
The default step size for the temporal animation, in step units. | 1 |
defaultStepUnit | string |
The default step unit for the temporal animation, one of ms , s , m , d , M , y , 10y , 100y |
"d" |
defaultTimelineDisplay | string |
The default timeline display mode. One of hidden , minimal , features , layers . |
undefined |
defaultTimelineMode | string |
The default timeline mode. One of fixed , infinite . |
"fixed" |
geometry | { initialWidth: number, initialHeight: number, initialX: number, initialY: number, initiallyDocked: bool, } |
Default window geometry with size, position and docking status. Positive position values (including '0') are related to top (InitialY) and left (InitialX), negative values (including '-0') to bottom (InitialY) and right (InitialX). | { initialWidth: 800, initialHeight: 320, initiallyDocked: true } |
markerConfiguration | { markersAvailable: bool, gradient: [string], markerOffset: array, markerPins: bool, } |
The feature marker configuration. | { markersAvailable: true, gradient: ["#f7af7d", "#eacc6e", "#fef89a", "#c5e09b", "#a3d29c", "#7cc096", "#79c8c5", "#34afce"], markerOffset: [0, 0], markerPins: true } |
stepUnits | [string] |
The available temporal animation step units. | ["s", "m", "h", "d", "M", "y"] |
TopBar¶
Top bar, containing the logo, searchbar, task buttons and app menu.
Property | Type | Description | Default value |
---|---|---|---|
appMenuClearsTask | bool |
Whether opening the app menu clears the active task. | undefined |
appMenuCompact | bool |
Whether show an appMenu compact (menu visible on icons hover) - Only available for desktop client. | undefined |
appMenuFilterField | bool |
Whether to display the filter field in the app menu. | undefined |
appMenuHidden | bool |
Whether to hide the app menu (useful primarely as a theme specific setting). | undefined |
appMenuShortcut | string |
The shortcut for tiggering the app menu, i.e. alt+shift+m. | undefined |
appMenuVisibleOnStartup | bool |
Whether to open the app menu on application startup. | undefined |
logoFormat | string |
The logo file format. | "svg" |
logoSrc | string |
The logo image URL if a different source than the default assets/img/logo. |
undefined |
logoUrl | string |
The hyperlink to open when the logo is clicked. | undefined |
menuItems | array |
The menu items. Refer to the corresponding chapter of the viewer documentation and the sample config.json. | [] |
searchOptions | { allowSearchFilters: bool, hideResultLabels: bool, highlightStyle: { strokeColor: array, strokeWidth: number, strokeDash: array, fillColor: array, }, minScaleDenom: number, resultLimit: number, sectionsDefaultCollapsed: bool, showLayerAfterChangeTheme: bool, showLayerResultsBeforePlaces: bool, showProviderSelection: bool, showProvidersInPlaceholder: bool, showResultInSearchText: bool, providerSelectionAllowAll: bool, zoomToLayers: bool, } |
Options passed down to the search component. | { showResultInSearchText: true } |
toolbarItems | array |
The toolbar. Refer to the corresponding chapter of the viewer documentation and the sample config.json. | [] |
toolbarItemsShortcutPrefix | string |
The keyboard shortcut prefix for triggering toolbar tasks. I.e. alt+shift. The task are then triggered by |
undefined |
ZoomButton¶
Map button for zooming the map.
Two specific plugins exist: ZoomInPlugin and ZoomOutPlugin, which are instances of ZoomButton for the respective zoom directions.
Property | Type | Description | Default value |
---|---|---|---|
enableZoomByBoxSelection | bool |
Enable zoom in or out by box selection. | undefined |
position | number |
The position slot index of the map button, from the bottom (0: bottom slot). | undefined |
themeFlagBlacklist | [string] |
Omit the button in themes matching one of these flags. | undefined |
themeFlagWhitelist | [string] |
Only show the button in themes matching one of these flags. | undefined |
EditingSupport¶
Editing support for the map component.
LocateSupport¶
GPS locate support for the map component.
MeasurementSupport¶
Measurement support for the map component.
OverviewMap¶
Overview map support for the map component.
Property | Type | Description | Default value |
---|---|---|---|
options | object |
See OpenLayers API doc for general options. Additionally, you can specify: - layer : Custom overview layer, in the same form as background layer definitions ({type: "<wms|wmts>", "url": ...} ).- viewOptions : Options for the OverviewMap View, see OpenLayers API doc. |
{} |
RedliningSupport¶
Redlining support for the map component.
ScaleBarSupport¶
Scalebar support for the map component.
Property | Type | Description | Default value |
---|---|---|---|
options | object |
See OpenLayers API doc | undefined |
SnappingSupport¶
Snapping support for the map component.