From 1db52f8c56fd01d3e0e401e8592005342a5645e9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 19 Feb 2025 17:39:06 +0000 Subject: [PATCH] Deployed ae28512 to master with MkDocs 1.4.2 and mike 2.0.0 --- master/references/qwc-admin-gui/index.html | 2 +- .../references/qwc-config-generator/index.html | 2 +- master/references/qwc-data-service/index.html | 2 +- master/references/qwc-db-auth/index.html | 2 +- .../references/qwc-document-service/index.html | 2 +- .../references/qwc-elevation-service/index.html | 2 +- master/references/qwc-ext-service/index.html | 2 +- .../qwc-feature-info-service/index.html | 2 +- master/references/qwc-ldap-auth/index.html | 2 +- master/references/qwc-legend-service/index.html | 2 +- master/references/qwc-map-viewer/index.html | 2 +- .../references/qwc-mapinfo-service/index.html | 2 +- master/references/qwc-ogc-service/index.html | 2 +- master/references/qwc-oidc-auth/index.html | 2 +- .../references/qwc-permalink-service/index.html | 2 +- master/references/qwc-print-service/index.html | 2 +- master/references/qwc-search-service/index.html | 2 +- .../qwc-services-permissions/index.html | 2 +- master/release_notes/ChangeLog/index.html | 2 +- master/search/search_index.json | 2 +- master/sitemap.xml.gz | Bin 232 -> 232 bytes 21 files changed, 20 insertions(+), 20 deletions(-) diff --git a/master/references/qwc-admin-gui/index.html b/master/references/qwc-admin-gui/index.html index 77ff017c..7548ee5e 100644 --- a/master/references/qwc-admin-gui/index.html +++ b/master/references/qwc-admin-gui/index.html @@ -1345,7 +1345,7 @@

diff --git a/master/references/qwc-config-generator/index.html b/master/references/qwc-config-generator/index.html index b21ce891..1c790ba4 100644 --- a/master/references/qwc-config-generator/index.html +++ b/master/references/qwc-config-generator/index.html @@ -2811,7 +2811,7 @@

diff --git a/master/references/qwc-data-service/index.html b/master/references/qwc-data-service/index.html index f86716ed..3a35687f 100644 --- a/master/references/qwc-data-service/index.html +++ b/master/references/qwc-data-service/index.html @@ -2961,7 +2961,7 @@

diff --git a/master/references/qwc-db-auth/index.html b/master/references/qwc-db-auth/index.html index a995659e..4623e7d1 100644 --- a/master/references/qwc-db-auth/index.html +++ b/master/references/qwc-db-auth/index.html @@ -1510,7 +1510,7 @@

diff --git a/master/references/qwc-document-service/index.html b/master/references/qwc-document-service/index.html index 60130a6c..9937a39b 100644 --- a/master/references/qwc-document-service/index.html +++ b/master/references/qwc-document-service/index.html @@ -977,7 +977,7 @@

diff --git a/master/references/qwc-elevation-service/index.html b/master/references/qwc-elevation-service/index.html index e4dd3fb4..51b921fe 100644 --- a/master/references/qwc-elevation-service/index.html +++ b/master/references/qwc-elevation-service/index.html @@ -297,7 +297,7 @@

diff --git a/master/references/qwc-ext-service/index.html b/master/references/qwc-ext-service/index.html index c15cf953..01e25026 100644 --- a/master/references/qwc-ext-service/index.html +++ b/master/references/qwc-ext-service/index.html @@ -554,7 +554,7 @@

diff --git a/master/references/qwc-feature-info-service/index.html b/master/references/qwc-feature-info-service/index.html index 54920a6b..e52f28cf 100644 --- a/master/references/qwc-feature-info-service/index.html +++ b/master/references/qwc-feature-info-service/index.html @@ -5159,7 +5159,7 @@

diff --git a/master/references/qwc-ldap-auth/index.html b/master/references/qwc-ldap-auth/index.html index 309d3f36..ed59c7dd 100644 --- a/master/references/qwc-ldap-auth/index.html +++ b/master/references/qwc-ldap-auth/index.html @@ -456,7 +456,7 @@

diff --git a/master/references/qwc-legend-service/index.html b/master/references/qwc-legend-service/index.html index 92a85e21..5a41e155 100644 --- a/master/references/qwc-legend-service/index.html +++ b/master/references/qwc-legend-service/index.html @@ -1798,7 +1798,7 @@

diff --git a/master/references/qwc-map-viewer/index.html b/master/references/qwc-map-viewer/index.html index c9afc8cb..55e4e7f3 100644 --- a/master/references/qwc-map-viewer/index.html +++ b/master/references/qwc-map-viewer/index.html @@ -1849,7 +1849,7 @@

diff --git a/master/references/qwc-mapinfo-service/index.html b/master/references/qwc-mapinfo-service/index.html index ed4df7b3..9b879f9a 100644 --- a/master/references/qwc-mapinfo-service/index.html +++ b/master/references/qwc-mapinfo-service/index.html @@ -1201,7 +1201,7 @@

diff --git a/master/references/qwc-ogc-service/index.html b/master/references/qwc-ogc-service/index.html index 085f1edb..dec33caf 100644 --- a/master/references/qwc-ogc-service/index.html +++ b/master/references/qwc-ogc-service/index.html @@ -3361,7 +3361,7 @@

diff --git a/master/references/qwc-oidc-auth/index.html b/master/references/qwc-oidc-auth/index.html index 38036417..72e6df1c 100644 --- a/master/references/qwc-oidc-auth/index.html +++ b/master/references/qwc-oidc-auth/index.html @@ -729,7 +729,7 @@

diff --git a/master/references/qwc-permalink-service/index.html b/master/references/qwc-permalink-service/index.html index 5319aed1..b72eb31d 100644 --- a/master/references/qwc-permalink-service/index.html +++ b/master/references/qwc-permalink-service/index.html @@ -584,7 +584,7 @@

diff --git a/master/references/qwc-print-service/index.html b/master/references/qwc-print-service/index.html index 19b602d0..6157c406 100644 --- a/master/references/qwc-print-service/index.html +++ b/master/references/qwc-print-service/index.html @@ -812,7 +812,7 @@

diff --git a/master/references/qwc-search-service/index.html b/master/references/qwc-search-service/index.html index e1e93b51..dcdfe048 100644 --- a/master/references/qwc-search-service/index.html +++ b/master/references/qwc-search-service/index.html @@ -1144,7 +1144,7 @@

diff --git a/master/references/qwc-services-permissions/index.html b/master/references/qwc-services-permissions/index.html index c1574d08..d034007c 100644 --- a/master/references/qwc-services-permissions/index.html +++ b/master/references/qwc-services-permissions/index.html @@ -3830,7 +3830,7 @@

diff --git a/master/release_notes/ChangeLog/index.html b/master/release_notes/ChangeLog/index.html index b2dfdd8d..b2f63c4a 100644 --- a/master/release_notes/ChangeLog/index.html +++ b/master/release_notes/ChangeLog/index.html @@ -313,7 +313,7 @@

Document serviceFeature info service

Fulltext search service

diff --git a/master/search/search_index.json b/master/search/search_index.json index 45db60dd..a6940d31 100644 --- a/master/search/search_index.json +++ b/master/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"QWC2 / QWC Services \u00b6 QGIS Web Client 2 (QWC2) is a modular next generation responsive web client for QGIS Server, built with ReactJS and OpenLayers. The core concept of QWC2 is to display QGIS Projects which are published by QGIS Server via WMS. There are two ways to run QWC2: As part of the qwc-services ecosystem, includes additional services to which includes additional services to extend the viewer functionality (such as user administration, editing, etc.). This is the recommended approach. As a standalone viewer (static JS/HTML/CSS web application) on top of QGIS Server. QWC2 with qwc-services on the backend provide a complete Web GIS infrastructure. Overview of functionalities \u00b6 Without any additional services, the stock QWC2 offers the following main functionalities: Theme switcher (a theme is a published QGIS project) Switchable background layers Layer tree Object information (feature info) Search with configurable providers Measurement tools Redlining (sketching) URL sharing Geolocation PDF printing Raster and DXF export Compare layers Import external layers (WMS, WFS, WMTS, KML, GeoJSON) When run as part of the qwc-services ecosystem, the following additional viewer functionalities are available: User administration Editing Fulltext search Compact permalinks Height profile Custom feature info templates Mapinfo popup Reports (via Jasper) qwc-services also provides the following enterprise relevant functionalities: Docker/Kubernetes or WSGI deployments Multi-tenant setup Custom service integration Multiple authentication backends Explore \u00b6 Developer Quickstart User guide Some public viewers: Demo | Glarus | Solothurn | Oslandia | Erft Verband Support \u00b6 Community support: Github Commercial Support: Sourcepole , Oslandia and other companies. Improve this web site","title":"Home"},{"location":"#qwc2-qwc-services","text":"QGIS Web Client 2 (QWC2) is a modular next generation responsive web client for QGIS Server, built with ReactJS and OpenLayers. The core concept of QWC2 is to display QGIS Projects which are published by QGIS Server via WMS. There are two ways to run QWC2: As part of the qwc-services ecosystem, includes additional services to which includes additional services to extend the viewer functionality (such as user administration, editing, etc.). This is the recommended approach. As a standalone viewer (static JS/HTML/CSS web application) on top of QGIS Server. QWC2 with qwc-services on the backend provide a complete Web GIS infrastructure.","title":"QWC2 / QWC Services"},{"location":"#overview-of-functionalities","text":"Without any additional services, the stock QWC2 offers the following main functionalities: Theme switcher (a theme is a published QGIS project) Switchable background layers Layer tree Object information (feature info) Search with configurable providers Measurement tools Redlining (sketching) URL sharing Geolocation PDF printing Raster and DXF export Compare layers Import external layers (WMS, WFS, WMTS, KML, GeoJSON) When run as part of the qwc-services ecosystem, the following additional viewer functionalities are available: User administration Editing Fulltext search Compact permalinks Height profile Custom feature info templates Mapinfo popup Reports (via Jasper) qwc-services also provides the following enterprise relevant functionalities: Docker/Kubernetes or WSGI deployments Multi-tenant setup Custom service integration Multiple authentication backends","title":"Overview of functionalities"},{"location":"#explore","text":"Developer Quickstart User guide Some public viewers: Demo | Glarus | Solothurn | Oslandia | Erft Verband","title":"Explore"},{"location":"#support","text":"Community support: Github Commercial Support: Sourcepole , Oslandia and other companies. Improve this web site","title":"Support"},{"location":"FAQ/","text":"FAQ \u00b6 Changing the qwc-docker port \u00b6 In the default setup, qwc-docker will run on port 8088 . To change this, you can modify the api-gateway port mapping in docker-compose.yml , i.e. to run on port 1234 : qwc-api-gateway: image: nginx:1.19 ports: - \"1234:80\"","title":"FAQ"},{"location":"FAQ/#faq","text":"","title":"FAQ"},{"location":"FAQ/#changing-the-qwc-docker-port","text":"In the default setup, qwc-docker will run on port 8088 . To change this, you can modify the api-gateway port mapping in docker-compose.yml , i.e. to run on port 1234 : qwc-api-gateway: image: nginx:1.19 ports: - \"1234:80\"","title":"Changing the qwc-docker port"},{"location":"QuickStart/","text":"Quick start \u00b6 Running QWC2 as part of qwc-services \u00b6 qwc-services is a collection of loosely coupled micro-services for extending QWC2. The services communicate with each other via HTTP/Rest, and are mostly written in Python. The easiest way to run qwc-services is to use the readily available docker images, using the sample setup at qwc-docker . To be able to run qwc-docker , first install docker and docker compose : Docker: https://docs.docker.com/engine/install/ docker-compose: https://docs.docker.com/compose/install/ Then, follow these steps: Clone the qwc-docker sample setup at qwc-docker and copy the docker-compose and api-gateway configuration templates: git clone --recursive https://github.com/qwc-services/qwc-docker.git cd qwc-docker cp docker-compose-example.yml docker-compose.yml cp api-gateway/nginx-example.conf api-gateway/nginx.conf Set the password for the postgres superuser in docker-compose.yml : qwc-postgis: image: sourcepole/qwc-base-db: environment: POSTGRES_PASSWORD: '' Create a secret key: python3 -c 'import secrets; print(\"JWT_SECRET_KEY=\\\"%s\\\"\" % secrets.token_hex(48))' >.env Change the UID/GID which runs the QWC services to match the user/group which owns the shared volumes on the host by setting SERVICE_UID and SERVICE_GID in qwc-docker/docker-compose.yml . Set permissions for the shared solr data volume: sudo chown 8983:8983 volumes/solr/data Start all containers (will download all images from dockerhub when executed the first time): docker-compose up Note : If using the newer docker compose project, you need to write docker compose up instead of docker-compose up (and similarly for other docker-compose calls). Note : The sample docker-compose-example.yml uses latest-YYYY-lts as image versions. This will result in docker always pulling the latest images of the respective lts series. See Keeping QWC services up to date . The map viewer will run on http://localhost:8088/ . The admin GUI will run on http://localhost:8088/qwc_admin (default admin credentials: username admin , password admin , requires password change on first login). Next steps: Configure the themes Customize the viewer Configuring the services Set resource permissions Running QWC2 as a standalone viewer \u00b6 If you don't need the advanced functionalities provided by qwc-services or want to integrate QWC2 in another environment, you can run QWC2 as a standalone viewer. To work with QWC2, you will need a minimal development environment consisting of git , node and yarn . You will also need a running QGIS Server instance which serves your projects. The fastest way to get started is by cloning the demo application: git clone --recursive https://github.com/qgis/qwc2-demo-app.git Next, install all required dependencies: cd qwc2-demo-app yarn install Then, start a local development application: yarn start The development application will run by default on http://localhost:8081 . At this point, you can customize and configure the application according to your needs, as described in detail in the following chapters. The final step is to compile a deployable application bundle for production: yarn run prod You can then deploy the contents of the prod folder to your web server. Next steps: Configure the themes Customize the viewer","title":"Quick start"},{"location":"QuickStart/#quick-start","text":"","title":"Quick start"},{"location":"QuickStart/#running-qwc2-as-part-of-qwc-services","text":"qwc-services is a collection of loosely coupled micro-services for extending QWC2. The services communicate with each other via HTTP/Rest, and are mostly written in Python. The easiest way to run qwc-services is to use the readily available docker images, using the sample setup at qwc-docker . To be able to run qwc-docker , first install docker and docker compose : Docker: https://docs.docker.com/engine/install/ docker-compose: https://docs.docker.com/compose/install/ Then, follow these steps: Clone the qwc-docker sample setup at qwc-docker and copy the docker-compose and api-gateway configuration templates: git clone --recursive https://github.com/qwc-services/qwc-docker.git cd qwc-docker cp docker-compose-example.yml docker-compose.yml cp api-gateway/nginx-example.conf api-gateway/nginx.conf Set the password for the postgres superuser in docker-compose.yml : qwc-postgis: image: sourcepole/qwc-base-db: environment: POSTGRES_PASSWORD: '' Create a secret key: python3 -c 'import secrets; print(\"JWT_SECRET_KEY=\\\"%s\\\"\" % secrets.token_hex(48))' >.env Change the UID/GID which runs the QWC services to match the user/group which owns the shared volumes on the host by setting SERVICE_UID and SERVICE_GID in qwc-docker/docker-compose.yml . Set permissions for the shared solr data volume: sudo chown 8983:8983 volumes/solr/data Start all containers (will download all images from dockerhub when executed the first time): docker-compose up Note : If using the newer docker compose project, you need to write docker compose up instead of docker-compose up (and similarly for other docker-compose calls). Note : The sample docker-compose-example.yml uses latest-YYYY-lts as image versions. This will result in docker always pulling the latest images of the respective lts series. See Keeping QWC services up to date . The map viewer will run on http://localhost:8088/ . The admin GUI will run on http://localhost:8088/qwc_admin (default admin credentials: username admin , password admin , requires password change on first login). Next steps: Configure the themes Customize the viewer Configuring the services Set resource permissions","title":"Running QWC2 as part of qwc-services"},{"location":"QuickStart/#running-qwc2-as-a-standalone-viewer","text":"If you don't need the advanced functionalities provided by qwc-services or want to integrate QWC2 in another environment, you can run QWC2 as a standalone viewer. To work with QWC2, you will need a minimal development environment consisting of git , node and yarn . You will also need a running QGIS Server instance which serves your projects. The fastest way to get started is by cloning the demo application: git clone --recursive https://github.com/qgis/qwc2-demo-app.git Next, install all required dependencies: cd qwc2-demo-app yarn install Then, start a local development application: yarn start The development application will run by default on http://localhost:8081 . At this point, you can customize and configure the application according to your needs, as described in detail in the following chapters. The final step is to compile a deployable application bundle for production: yarn run prod You can then deploy the contents of the prod folder to your web server. Next steps: Configure the themes Customize the viewer","title":"Running QWC2 as a standalone viewer"},{"location":"UserGuide/","text":"User guide \u00b6 This section contains user documentation of the QWC2 application and QWC services. It describes some of the available features. Note : Depending on the specific viewer configuration, some functionalities might be missing or different than described in this section. Overview \u00b6 QGIS Web Client is composed of some essential features for the user to be able to navigate through its GIS data. The user interface is composed of : a map : navigate through your GIS data, zoom, pan a toolbar : configure some shortcuts for tools (none in this example) a logo : customize your application with your company logo a searchbar : search in the application according to configurable search providers a menu : navigate through all the tools and features of the application a scalebar : see what is the current scale of the map a coordinates display according to the mouse position in several configurable CRS (Coordinates Reference System) a drop-down list of scales : set the zoom of the map at a pre-defined scale shortcuts : configure shortcut buttons for some features (Show Layer Tree for example) home button : set the extent of the map at the home extent defined in your QGIS project location button : zoom at the location of your device zoom buttons : zoom in or out the map a background switcher : change background layer among those configured in the application attributions : links to the attributions data terms of use : links to the terms of use of the application Basic features \u00b6 Menu \u00b6 Here is a minimalist menu of the application with basic features : Theme \u00b6 Theme menu lists all the published QGIS projects in the application. One theme is linked to one QGIS project . You can switch from one to another by clicking on corresponding thumbnails. Then, the map is updated with data of the selected theme. Themes can be sorted in groups. You can also open a theme in a new tab, add a whole theme to the current map (to display several projects at the same time) or add some layers of a theme to the current one. Layers & Legend \u00b6 Layers & Legend menu allows user to show or hide any layer (or group of layers) on the map. Each layer comes from a published QGIS project (or theme ), or from an external WMS/WFS, or local file. On the top of this menu, you can print the legend of the displayed theme by clicking the print button. This will open a new window, where you can print this legend. The eye button is used to filter layers that are not visible. The trash button is used to remove all the layers displayed in the current map. You can retrieve layers from a QGIS project by selecting a theme in Theme menu. The i button displays a new window with all the informations about the current theme. These informations are retrieved from the QGIS project properties. For each layer, user can: remove the layer by clicking the trash button. This removes the layer only for the current context of the user, not for all the users. If the layer comes from the QGIS project, you can retrieve the deleted one by selecting the theme in Theme menu. change the order of display, by clicking up and down arrows buttons change opacity with the slider zoom on the layer extent with the magnifying glass button display layer legend by hovering the image on the left of the layer name or by clicking the i button (new window displaying info about the layer retrieved from QGIS project) The Show layer map tips option is used to display a tooltip when hovering an object on the map. It needs you have configured a map tip in layers properties. The Compare top layer option splits the map into two parts. On the left side, top layer (in the tree) is displayed while it is not on the right side. You can move the slider on the map to see the differences between the two sides. The Import layer submenu allows user to add some external data to the current map. You can configure some predefined URLs in the application. For example, Swisstopo WMTS is a predefined entry in the demo application which queries https://wmts10.geo.admin.ch/EPSG/2056/1.0.0/WMTSCapabilities.xml . You can also add other URLs that are not predefined in the application, https://wxs.ign.fr/clc/geoportail/r/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities if you want to add french Corine Land Cover data. By clicking on connect, there is a list of data available from the entered URL and you can add some of the layers to your current map by clicking on them. In the Import layer submenu, you can also import local files to the current map. Only some formats are supported ( GeoJSON , JSON , KML ). Map Tools \u00b6 In the Map Tools menu, user can retrieve some basic features of GIS webclient : * identify objects * measuring tools * drawing tools * export image Identify \u00b6 To identify an object and get attribute values, you can click directly on the map. If an object is present at the click position, there is a request sent to QGIS Server to get attributes of the clicked object. Results are displayed in a window with all objects identified. Geometry of queried objects are highlighted. You can zoom on an object extent, or browse results one by one in the Feature Info panel. Finally, you can export results of all identified objects ( JSON , GeoJSON , CSV or CSV + ZIP ). To be able to query an object, layer must be configured as queryable in the QGIS project (check the Identifiable checkbox in Project \u2192 Properties \u2192 Data Sources in your QGIS project). Identify Region \u00b6 User can also use Identify Region tool to identify multiple objects in the same time. Draw a polygon around the features to identify to get the results. Measure \u00b6 Measuring tools can be used to retrieve position, object length, object area, ... Values can be copied to clipboard with the copy button. Position \u00b6 Click on the map to get coordinates. Coordinates are displayed according to selected CRS in bottom bar of the application (here WGS 84 / Pseudo Mercator ). Length \u00b6 Draw a polyline on the map to measure the length of each segment and the sum of all these lengths. User can choose the units of measurement ( meters , feet , kilometers , miles ). Area \u00b6 Draw a polygon on the map to measure an area. User can choose the units of measurement ( square meters , square feet , square kilometers , square miles , hectares ). Bearing \u00b6 Draw a line on the map to get the bearing angle of this line (angle from start point to end point). Redlining \u00b6 In Redlining tool, user can add some annotations to the map in different temporary layers. The default layer in which you can add annotations is named Redlining . You can add new layers by clicking + button. Drawing layers are available in Layers & Legend menu. Drawing options are : * point * polyline * polygon * circle * text For each object, you can set border color, fill color, size. Fill the label entry to set text on your object. Once you have drawn objects, you can edit them by picking one and change options. Pick an object and click on trash button to delete it. Buffer option is used to create a buffer around the selected object. Raster Export \u00b6 Raster Export tool allows the user to export a screenshot of the map in an image ( png , jpeg ) at a specified resolution ( 96 dpi , 300 dpi ). Draw a rectangle on the map to export a region in an image. An image is opened in a new tab and you can save it on your computer with the specified format and resolution. Print \u00b6 With Print menu, you can export a layout configured in your QGIS project as PDF file. When clicking on the menu, a list of all available layouts of the theme (QGIS project) is displayed. You can set some options : scale, rotation, grid and custom text (if configured in the layout). Result is displayed in a new tab or in a window in the application. Then, you can save it in a file or print it. Help \u00b6 By default, Help menu displays the build date of the application. You can also customize this menu to have a link to the QWC User documentation. External Link \u00b6 External Link menu can be used to have a link to other resources. For example, your company site.","title":"User guide"},{"location":"UserGuide/#user-guide","text":"This section contains user documentation of the QWC2 application and QWC services. It describes some of the available features. Note : Depending on the specific viewer configuration, some functionalities might be missing or different than described in this section.","title":"User guide"},{"location":"UserGuide/#overview","text":"QGIS Web Client is composed of some essential features for the user to be able to navigate through its GIS data. The user interface is composed of : a map : navigate through your GIS data, zoom, pan a toolbar : configure some shortcuts for tools (none in this example) a logo : customize your application with your company logo a searchbar : search in the application according to configurable search providers a menu : navigate through all the tools and features of the application a scalebar : see what is the current scale of the map a coordinates display according to the mouse position in several configurable CRS (Coordinates Reference System) a drop-down list of scales : set the zoom of the map at a pre-defined scale shortcuts : configure shortcut buttons for some features (Show Layer Tree for example) home button : set the extent of the map at the home extent defined in your QGIS project location button : zoom at the location of your device zoom buttons : zoom in or out the map a background switcher : change background layer among those configured in the application attributions : links to the attributions data terms of use : links to the terms of use of the application","title":"Overview"},{"location":"UserGuide/#basic-features","text":"","title":"Basic features"},{"location":"UserGuide/#menu","text":"Here is a minimalist menu of the application with basic features :","title":"Menu"},{"location":"UserGuide/#theme","text":"Theme menu lists all the published QGIS projects in the application. One theme is linked to one QGIS project . You can switch from one to another by clicking on corresponding thumbnails. Then, the map is updated with data of the selected theme. Themes can be sorted in groups. You can also open a theme in a new tab, add a whole theme to the current map (to display several projects at the same time) or add some layers of a theme to the current one.","title":"Theme"},{"location":"UserGuide/#layers-legend","text":"Layers & Legend menu allows user to show or hide any layer (or group of layers) on the map. Each layer comes from a published QGIS project (or theme ), or from an external WMS/WFS, or local file. On the top of this menu, you can print the legend of the displayed theme by clicking the print button. This will open a new window, where you can print this legend. The eye button is used to filter layers that are not visible. The trash button is used to remove all the layers displayed in the current map. You can retrieve layers from a QGIS project by selecting a theme in Theme menu. The i button displays a new window with all the informations about the current theme. These informations are retrieved from the QGIS project properties. For each layer, user can: remove the layer by clicking the trash button. This removes the layer only for the current context of the user, not for all the users. If the layer comes from the QGIS project, you can retrieve the deleted one by selecting the theme in Theme menu. change the order of display, by clicking up and down arrows buttons change opacity with the slider zoom on the layer extent with the magnifying glass button display layer legend by hovering the image on the left of the layer name or by clicking the i button (new window displaying info about the layer retrieved from QGIS project) The Show layer map tips option is used to display a tooltip when hovering an object on the map. It needs you have configured a map tip in layers properties. The Compare top layer option splits the map into two parts. On the left side, top layer (in the tree) is displayed while it is not on the right side. You can move the slider on the map to see the differences between the two sides. The Import layer submenu allows user to add some external data to the current map. You can configure some predefined URLs in the application. For example, Swisstopo WMTS is a predefined entry in the demo application which queries https://wmts10.geo.admin.ch/EPSG/2056/1.0.0/WMTSCapabilities.xml . You can also add other URLs that are not predefined in the application, https://wxs.ign.fr/clc/geoportail/r/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities if you want to add french Corine Land Cover data. By clicking on connect, there is a list of data available from the entered URL and you can add some of the layers to your current map by clicking on them. In the Import layer submenu, you can also import local files to the current map. Only some formats are supported ( GeoJSON , JSON , KML ).","title":"Layers & Legend"},{"location":"UserGuide/#map-tools","text":"In the Map Tools menu, user can retrieve some basic features of GIS webclient : * identify objects * measuring tools * drawing tools * export image","title":"Map Tools"},{"location":"UserGuide/#identify","text":"To identify an object and get attribute values, you can click directly on the map. If an object is present at the click position, there is a request sent to QGIS Server to get attributes of the clicked object. Results are displayed in a window with all objects identified. Geometry of queried objects are highlighted. You can zoom on an object extent, or browse results one by one in the Feature Info panel. Finally, you can export results of all identified objects ( JSON , GeoJSON , CSV or CSV + ZIP ). To be able to query an object, layer must be configured as queryable in the QGIS project (check the Identifiable checkbox in Project \u2192 Properties \u2192 Data Sources in your QGIS project).","title":"Identify"},{"location":"UserGuide/#identify-region","text":"User can also use Identify Region tool to identify multiple objects in the same time. Draw a polygon around the features to identify to get the results.","title":"Identify Region"},{"location":"UserGuide/#measure","text":"Measuring tools can be used to retrieve position, object length, object area, ... Values can be copied to clipboard with the copy button.","title":"Measure"},{"location":"UserGuide/#position","text":"Click on the map to get coordinates. Coordinates are displayed according to selected CRS in bottom bar of the application (here WGS 84 / Pseudo Mercator ).","title":"Position"},{"location":"UserGuide/#length","text":"Draw a polyline on the map to measure the length of each segment and the sum of all these lengths. User can choose the units of measurement ( meters , feet , kilometers , miles ).","title":"Length"},{"location":"UserGuide/#area","text":"Draw a polygon on the map to measure an area. User can choose the units of measurement ( square meters , square feet , square kilometers , square miles , hectares ).","title":"Area"},{"location":"UserGuide/#bearing","text":"Draw a line on the map to get the bearing angle of this line (angle from start point to end point).","title":"Bearing"},{"location":"UserGuide/#redlining","text":"In Redlining tool, user can add some annotations to the map in different temporary layers. The default layer in which you can add annotations is named Redlining . You can add new layers by clicking + button. Drawing layers are available in Layers & Legend menu. Drawing options are : * point * polyline * polygon * circle * text For each object, you can set border color, fill color, size. Fill the label entry to set text on your object. Once you have drawn objects, you can edit them by picking one and change options. Pick an object and click on trash button to delete it. Buffer option is used to create a buffer around the selected object.","title":"Redlining"},{"location":"UserGuide/#raster-export","text":"Raster Export tool allows the user to export a screenshot of the map in an image ( png , jpeg ) at a specified resolution ( 96 dpi , 300 dpi ). Draw a rectangle on the map to export a region in an image. An image is opened in a new tab and you can save it on your computer with the specified format and resolution.","title":"Raster Export"},{"location":"UserGuide/#print","text":"With Print menu, you can export a layout configured in your QGIS project as PDF file. When clicking on the menu, a list of all available layouts of the theme (QGIS project) is displayed. You can set some options : scale, rotation, grid and custom text (if configured in the layout). Result is displayed in a new tab or in a window in the application. Then, you can save it in a file or print it.","title":"Print"},{"location":"UserGuide/#help","text":"By default, Help menu displays the build date of the application. You can also customize this menu to have a link to the QWC User documentation.","title":"Help"},{"location":"UserGuide/#external-link","text":"External Link menu can be used to have a link to other resources. For example, your company site.","title":"External Link"},{"location":"configuration/ResourcesPermissions/","text":"Managing Users, Resources and Permissions \u00b6 qwc-docker has a QWC configuration backend . That backend can be reached by default at http://localhost:8088/qwc_admin . The configuration backend allows to assign users and groups to roles. The roles in their turn can receive permissions on resources. These configuration settings will be stored in the configuration database . Out of the box qwc-docker comes with with a container qwc-postgis that contains the configuration database. Users, groups and roles \u00b6 Roles can be given permissions on resources. That means that if you want to give users or groups permissions on resources, then you have to first create a role, configure the permissions that the roles has on some resources, and then assign the role the users or groups. Resources \u00b6 The following resource types are available: Map : WMS corresponding to a QGIS Project Layer : Layer of a map Attribute : Attribute of a map layer (i.e. for WFS) Print template : Print composer template of a QGIS Project Data : Data layer for editing Attribute : Attribute of a data layer Data (create) : Data layer for creating features Data (read) : Data layer for reading features Data (update) : Data layer for updating features Data (delete) : Data layer for deleting features Viewer task : Permittable viewer tasks FeatureInfo service : Feature info service FeatureInfo layer : Feature info layer Attribute : Attribute of a info layer The resource name corresponds to the technical name of its resource (e.g. WMS layer name). Most notably, the name of a map resource corresponds to the relative path to the project below qgs-resources without .qgs extension (so i.e. the resource name for qgs-resources/subfolder/project.qgs will be subfolder/project ). Note: If your QGIS project is configured to return the field aliases rather than the field names in GetFeatureInfo , the resource name for layer attribute resources corresponds to the alias of the field. Available map , layer , attribute and print_template resources are determined from WMS GetProjectSettings and the QGIS projects. The data and their attribute resources define a data layer for the Data service . For more detailed CRUD permissions data_create , data_read , data_update and data_delete can be used instead of data ( data and write=False is equivalent to data_read ; data and write=True is equivalent to all CRUD resources combined). The viewer_task resource defines viewer functionalities (e.g. printing or raster export) that can be restricted or permitted. Their name (e.g. RasterExport ) will be matched against: - The key in menuItems and toolbarItems in the QWC2 config.json . - The name of a plugin entry in config.json . - The task configuration property of a TaskButton plugin entry in config.json Note : You can restrict tasks entires which specify a mode (i.e. {\"key\": \"Measure\", \"mode\": \"LineString\"} ) by concatenating the task key and the mode as the viewer_task resource name, i.e. MeasureLineString . The FeatureInfo service , FeatureInfo layer and subordinate Attribute resources allow controlling whether an entire WMS service, its layers or its attributes are queryable via GetFeatureInfo. Restricted viewer task items are then removed from the menu and toolbar in the map viewer. Viewer tasks not explicitly added as resources are kept unchanged from the config.json . Note : The resource types, i.e. for custom QWC2 plugins, can be extended by inserting new types into the qwc_config.resource_types table. These can be queried, e.g. in a custom service, by using PermissionClient::resource_permissions() or PermissionClient::resource_restrictions() from QWC Services Core . Permissions \u00b6 Permissions are based on roles. Roles can be assigned to groups or users, and users can be members of groups. A special role is \"public\". The \"public\" role applies always, no matter whether a user is signed in or is not signed in. Roles can be assigned permission for resources. The write flag is only used for data resources and determines whether a data layer is read-only. Based on the user's identity (user name and/or group name), all corresponding roles and their permissions and restrictions are collected. The service configurations are then modified according to these permissions and restrictions. By using the permissions_default_allow configuration setting in tenantConfig.json , some resources can be set to be permitted or restricted by default if no permissions are set (default: false ). Among affected resources are Map , Layer , Print template , Viewer task , FeatureInfo service , FeatureInfo layer . E.g.: permissions_default_allow=true : all maps and layers are permitted by default permissions_default_allow=false : maps and layers are only available if their resources and permissions are explicitly configured Restricted themes \u00b6 The display behaviour of restricted themes can be configured in the mapViewer service configuration in tenantConfig.json as follows: { \"name\": \"mapViewer\", \"config\": { \"show_restricted_themes\": false, \"show_restricted_themes_whitelist\": [], \"redirect_restricted_themes_to_auth\": false, \"internal_permalink_service_url\": \"http://qwc-permalink-service:9090\" } } show_restricted_themes : Whether to show placeholder items for restricted themes. Default: false . show_restricted_themes_whitelist : Whitelist of restricted theme names to display as placeholders. If empty, all restricted themes are shown. Only used if show_restricted_themes enabled. Default: [] . redirect_restricted_themes_to_auth : Whether to redirect to login on auth service if requesting a restricted theme in URL params, if not currently signed in. Default: false . internal_permalink_service_url : Internal permalink service URL for getting the theme from a resolved permalink for redirecting to login (default: http://qwc-permalink-service:9090 ). This is used only if redirect_restricted_themes_to_auth is enabled and permalink_service_url is set. Permissions file \u00b6 The QWC Config Generator generates a JSON file for all permissions from the QWC ConfigDB. See READMEs of QWC services for service specific contents in permissions.json . Group registration \u00b6 Using the optional Registration GUI allows users to request membership or unsubscribe from registrable groups. These requests can then be accepted or rejected in the Admin GUI . Workflow: Admin GUI admin user creates new groups with assigned roles and permissions on resources admin user configures registrable groups Registration GUI user select desired groups from registrable groups and submits application form admin users are notified of new registration requests Admin GUI admin user selects entry from list of pending registration requests admin user accepts or rejects registration requests for a user user is added to or removed from accepted groups user is notified of registration request updates Map Viewer user permissions are updated for new groups","title":"Resources and permissions"},{"location":"configuration/ResourcesPermissions/#managing-users-resources-and-permissions","text":"qwc-docker has a QWC configuration backend . That backend can be reached by default at http://localhost:8088/qwc_admin . The configuration backend allows to assign users and groups to roles. The roles in their turn can receive permissions on resources. These configuration settings will be stored in the configuration database . Out of the box qwc-docker comes with with a container qwc-postgis that contains the configuration database.","title":"Managing Users, Resources and Permissions"},{"location":"configuration/ResourcesPermissions/#users-groups-and-roles","text":"Roles can be given permissions on resources. That means that if you want to give users or groups permissions on resources, then you have to first create a role, configure the permissions that the roles has on some resources, and then assign the role the users or groups.","title":"Users, groups and roles"},{"location":"configuration/ResourcesPermissions/#resources","text":"The following resource types are available: Map : WMS corresponding to a QGIS Project Layer : Layer of a map Attribute : Attribute of a map layer (i.e. for WFS) Print template : Print composer template of a QGIS Project Data : Data layer for editing Attribute : Attribute of a data layer Data (create) : Data layer for creating features Data (read) : Data layer for reading features Data (update) : Data layer for updating features Data (delete) : Data layer for deleting features Viewer task : Permittable viewer tasks FeatureInfo service : Feature info service FeatureInfo layer : Feature info layer Attribute : Attribute of a info layer The resource name corresponds to the technical name of its resource (e.g. WMS layer name). Most notably, the name of a map resource corresponds to the relative path to the project below qgs-resources without .qgs extension (so i.e. the resource name for qgs-resources/subfolder/project.qgs will be subfolder/project ). Note: If your QGIS project is configured to return the field aliases rather than the field names in GetFeatureInfo , the resource name for layer attribute resources corresponds to the alias of the field. Available map , layer , attribute and print_template resources are determined from WMS GetProjectSettings and the QGIS projects. The data and their attribute resources define a data layer for the Data service . For more detailed CRUD permissions data_create , data_read , data_update and data_delete can be used instead of data ( data and write=False is equivalent to data_read ; data and write=True is equivalent to all CRUD resources combined). The viewer_task resource defines viewer functionalities (e.g. printing or raster export) that can be restricted or permitted. Their name (e.g. RasterExport ) will be matched against: - The key in menuItems and toolbarItems in the QWC2 config.json . - The name of a plugin entry in config.json . - The task configuration property of a TaskButton plugin entry in config.json Note : You can restrict tasks entires which specify a mode (i.e. {\"key\": \"Measure\", \"mode\": \"LineString\"} ) by concatenating the task key and the mode as the viewer_task resource name, i.e. MeasureLineString . The FeatureInfo service , FeatureInfo layer and subordinate Attribute resources allow controlling whether an entire WMS service, its layers or its attributes are queryable via GetFeatureInfo. Restricted viewer task items are then removed from the menu and toolbar in the map viewer. Viewer tasks not explicitly added as resources are kept unchanged from the config.json . Note : The resource types, i.e. for custom QWC2 plugins, can be extended by inserting new types into the qwc_config.resource_types table. These can be queried, e.g. in a custom service, by using PermissionClient::resource_permissions() or PermissionClient::resource_restrictions() from QWC Services Core .","title":"Resources"},{"location":"configuration/ResourcesPermissions/#permissions","text":"Permissions are based on roles. Roles can be assigned to groups or users, and users can be members of groups. A special role is \"public\". The \"public\" role applies always, no matter whether a user is signed in or is not signed in. Roles can be assigned permission for resources. The write flag is only used for data resources and determines whether a data layer is read-only. Based on the user's identity (user name and/or group name), all corresponding roles and their permissions and restrictions are collected. The service configurations are then modified according to these permissions and restrictions. By using the permissions_default_allow configuration setting in tenantConfig.json , some resources can be set to be permitted or restricted by default if no permissions are set (default: false ). Among affected resources are Map , Layer , Print template , Viewer task , FeatureInfo service , FeatureInfo layer . E.g.: permissions_default_allow=true : all maps and layers are permitted by default permissions_default_allow=false : maps and layers are only available if their resources and permissions are explicitly configured","title":"Permissions"},{"location":"configuration/ResourcesPermissions/#restricted-themes","text":"The display behaviour of restricted themes can be configured in the mapViewer service configuration in tenantConfig.json as follows: { \"name\": \"mapViewer\", \"config\": { \"show_restricted_themes\": false, \"show_restricted_themes_whitelist\": [], \"redirect_restricted_themes_to_auth\": false, \"internal_permalink_service_url\": \"http://qwc-permalink-service:9090\" } } show_restricted_themes : Whether to show placeholder items for restricted themes. Default: false . show_restricted_themes_whitelist : Whitelist of restricted theme names to display as placeholders. If empty, all restricted themes are shown. Only used if show_restricted_themes enabled. Default: [] . redirect_restricted_themes_to_auth : Whether to redirect to login on auth service if requesting a restricted theme in URL params, if not currently signed in. Default: false . internal_permalink_service_url : Internal permalink service URL for getting the theme from a resolved permalink for redirecting to login (default: http://qwc-permalink-service:9090 ). This is used only if redirect_restricted_themes_to_auth is enabled and permalink_service_url is set.","title":"Restricted themes"},{"location":"configuration/ResourcesPermissions/#permissions-file","text":"The QWC Config Generator generates a JSON file for all permissions from the QWC ConfigDB. See READMEs of QWC services for service specific contents in permissions.json .","title":"Permissions file"},{"location":"configuration/ResourcesPermissions/#group-registration","text":"Using the optional Registration GUI allows users to request membership or unsubscribe from registrable groups. These requests can then be accepted or rejected in the Admin GUI . Workflow: Admin GUI admin user creates new groups with assigned roles and permissions on resources admin user configures registrable groups Registration GUI user select desired groups from registrable groups and submits application form admin users are notified of new registration requests Admin GUI admin user selects entry from list of pending registration requests admin user accepts or rejects registration requests for a user user is added to or removed from accepted groups user is notified of registration request updates Map Viewer user permissions are updated for new groups","title":"Group registration"},{"location":"configuration/ServiceConfiguration/","text":"QWC Services configuration \u00b6 The architecture of qwc-services is as follows: API-Gateway: API Gateway, forwards requests to individual services http://localhost:8088 Auth-Service: Authentication service with local user database (default users: admin:admin, demo:demo) http://localhost:8088/auth/login Map viewer: QWC2 map viewer http://localhost:8088 OGC Service: Proxy for WMS/WFS requests filtered by permissions, calls QGIS Server http://localhost:8088/ows/api Admin GUI: Admin GUI http://localhost:8088/qwc_admin/ qwc-docker ships a pre-configured the qwc-services ecosystem as an easy to use application. Service overview \u00b6 Following is an overview of existing qwc-services : Applications : QWC2 Map Viewer : The map viewer application QWC Admin GUI : Configuration backend for managing users and permissions Registration GUI : GUI for registration of new users REST services : DB auth service : Authentication service with local user database LDAP auth service : LDAP Authentication service Data service : Data edit service, required for QWC2 editing functionality Document service : Service for generating Jasper reports Elevation service : Service for providing elevation data, required for QWC2 elevation profile Feature info service : Service for providing enhanced GetFeatureInfo responses to QWC2 Fulltext search service : Fulltext search service for the QWC2 search functionality Legend service : Service for providing enhanced legend graphics to QWC2 Mapinfo service : Service for providing additional information to the QWC2 right-click map context popup OGC service : Proxy for WMS/WFS requests filtered by permissions, calls QGIS Server Permalink service : Service for storing compat permalinks and bookmarks generated by QWC2 Print service : Service for enhancing the QWC2 GetPrint requests Configuration database : DB schema and migrations Configuration generator : Configuration generator qwc-docker layout \u00b6 The layout of the qwc-docker tree is as follows: Path Description \u251c\u2500 api-gateway/nginx.conf API gateway configuration. \u251c\u2500 volumes/ Contains folders which are mounted into the various containers. \u2502 \u251c\u2500 attachments Storage of files uploaded through the QWC2 editing functionality. \u2502 \u251c\u2500 config// Service configuration files, generated by qwc-config-generator . \u2502 \u251c\u2500 config-in// Input configuration files, processed by the qwc-config-generator . \u2502 \u2502 \u251c\u2500 config.json Master configuration for the QWC2 viewer. \u2502 \u2502 \u251c\u2500 index.html Viewer entry point. \u2502 \u2502 \u251c\u2500 themesConfig.json Themes configuration. \u2502 \u2502 \u2514\u2500 tenantConfig.json Master configuration file for qwc services. \u2502 \u251c\u2500 db/ Storage of configuration database (see Config DB ). \u2502 \u251c\u2500 info-templates/ Custom feature-info templates (see qwc-feature-info-service ). \u2502 \u251c\u2500 jasper-reports/ Jasper reports (see qwc-document-service ). \u2502 \u251c\u2500 legends/ Custom legend images (see qwc-legend-service ). \u2502 \u251c\u2500 qgs-resources/ QGIS projects and data referenced by the projects. \u2502 \u251c\u2500 qwc2/ QWC2 Viewer. \u2502 \u2514\u2500 solr/ Fulltext search index. \u251c\u2500 docker-compose.yml Container configuration file. \u251c\u2500 pg_service.conf Database service definitions. \u2514\u2500 pg_service-write.conf Database service definitions for write connections. Service configurations \u00b6 The master configuration file for the QWC services is located at qwc-docker/volumes/config-in//tenantConfig.json , where is the tenant name, default by default. See Multi Tenancy for more details on tenants. The file is structured as follows: { \"$schema\": \"https://github.com/qwc-services/qwc-config-generator/raw/master/schemas/qwc-config-generator.json\", \"service\": \"config-generator\", \"config\": { }, \"themesConfig\": \"./themesConfig.json\", \"services\": [ { \"name\": \" }, ... ] } Refer to the qwc-config-generator schema for the available ConfigGenerator config settings. themesConfig is a relative path to the theme configuration file as documented in Theme configuration . The services block contains the configuration for the individual QWC services, as documented in the reference . Note: All config settings can also be set as environment variables in capitalized form in docker-compose.yml . Note: Some variables must be set as environment variables in docker-compose.yml : ENV Default value Description INPUT_CONFIG_PATH config-in Base path for service configuration files OUTPUT_CONFIG_PATH /tmp Base path for service configuration files JWT_SECRET_KEY ******** secret key for JWT token TENANT_URL_RE None Regex for tenant extraction from base URL. Example: ^https?://.+?/(.+?)/ TENANT_HEADER None Tenant Header name. Example: Tenant Enabling additional services \u00b6 Add service entry in qwc-services/docker-compose.yml , setting the service mountpoint: SERVICE_MOUNTPOINT=/ Example: qwc-print-service: image: sourcepole/qwc-print-service:vYYYY.MM.DD environment: <<: *qwc-service-variables SERVICE_MOUNTPOINT: '/api/v1/print' volumes: - ./volumes/config:/srv/qwc_service/config:ro ports: - \"127.0.0.1:5020:9090\" Add corresponding entry in api-gateway/nginx.conf , example: location /api/v1/print { proxy_pass http://qwc-print-service:9090; } If necessary, uncomment/add the respective service url (see also the qwc-map-viewer schema reference ) in the mapViewer config block of volumes/config-in/default/tenantConfig.json , i.e. { \"name\": \"mapViewer\", \"generator_config\": { # ... }, \"config\": { \"print_service_url\": \"/api/v1/print/\", # ... } } Add the service configuration block below services in volumes/config-in/default/tenantConfig.json , according to the service config schema, i.e. { \"name\": \"print\", \"config\": { \"ogc_service_url\": \"http://qwc-ogc-service:9090/\", \"qgis_server_version\": \"3.16\" } } Configuration database \u00b6 The Configuration database (CofigDB) contains the database schema qwc_config for configurations and permissions of QWC services. This database uses the PostgreSQL connection service qwc_configdb by default, which can be setup for the corresponding database in the PostgreSQL connection service file qwc-docker/pg_service.conf . To use an external configuration database, either change the connection definition for qwc_configdb in qwc-docker/pg_service.conf or change the config_db_url in qwc-docker/volumes/config-in//tenantConfig.json . Database migrations \u00b6 Migrations to the ConfigDB are applied automatically by the qwc-base-db-migrate image which is included in the sample docker-compose-example.yml . To upgrade the ConfigDB to a newer version, it is sufficient to change the version of the image to the desired version, and migrations will be applied automatically next time the application is restarted. See the qwc-base-db README for more info. Keeping QWC services up to date \u00b6 When using qwc-docker , updating the services is a simple as updating the image tags in qwc-docker/docker-compose.yml . Two versioning schemes are available: vYYYY-MM-DD : These refer to the latest available \"development\" version of the respective images (i.e. v2023.05.12 ). vYYYY.X-lts : These refer to the long term support version of the respective images (i.e. v2023.1-lts ). You can always check the available tags on dockerhub, for example at https://hub.docker.com/r/sourcepole/qwc-config-generator . In particular, to special tags exist, latest , latest-lts and latest-YYYY-lts (i.e. latest-2024-lts ) which always refer to the latest available \"development\" and long term support versions respectively. Note however that using these tags will result in docker automatically pulling new versions when the application is launched, which may be undesired. The qwc-docker Upgrade Notes documents major changes, and in particular all incompatible changes between releases which require changes to the application specific code and/or configuration.","title":"Services"},{"location":"configuration/ServiceConfiguration/#qwc-services-configuration","text":"The architecture of qwc-services is as follows: API-Gateway: API Gateway, forwards requests to individual services http://localhost:8088 Auth-Service: Authentication service with local user database (default users: admin:admin, demo:demo) http://localhost:8088/auth/login Map viewer: QWC2 map viewer http://localhost:8088 OGC Service: Proxy for WMS/WFS requests filtered by permissions, calls QGIS Server http://localhost:8088/ows/api Admin GUI: Admin GUI http://localhost:8088/qwc_admin/ qwc-docker ships a pre-configured the qwc-services ecosystem as an easy to use application.","title":"QWC Services configuration"},{"location":"configuration/ServiceConfiguration/#service-overview","text":"Following is an overview of existing qwc-services : Applications : QWC2 Map Viewer : The map viewer application QWC Admin GUI : Configuration backend for managing users and permissions Registration GUI : GUI for registration of new users REST services : DB auth service : Authentication service with local user database LDAP auth service : LDAP Authentication service Data service : Data edit service, required for QWC2 editing functionality Document service : Service for generating Jasper reports Elevation service : Service for providing elevation data, required for QWC2 elevation profile Feature info service : Service for providing enhanced GetFeatureInfo responses to QWC2 Fulltext search service : Fulltext search service for the QWC2 search functionality Legend service : Service for providing enhanced legend graphics to QWC2 Mapinfo service : Service for providing additional information to the QWC2 right-click map context popup OGC service : Proxy for WMS/WFS requests filtered by permissions, calls QGIS Server Permalink service : Service for storing compat permalinks and bookmarks generated by QWC2 Print service : Service for enhancing the QWC2 GetPrint requests Configuration database : DB schema and migrations Configuration generator : Configuration generator","title":"Service overview"},{"location":"configuration/ServiceConfiguration/#qwc-docker-layout","text":"The layout of the qwc-docker tree is as follows: Path Description \u251c\u2500 api-gateway/nginx.conf API gateway configuration. \u251c\u2500 volumes/ Contains folders which are mounted into the various containers. \u2502 \u251c\u2500 attachments Storage of files uploaded through the QWC2 editing functionality. \u2502 \u251c\u2500 config// Service configuration files, generated by qwc-config-generator . \u2502 \u251c\u2500 config-in// Input configuration files, processed by the qwc-config-generator . \u2502 \u2502 \u251c\u2500 config.json Master configuration for the QWC2 viewer. \u2502 \u2502 \u251c\u2500 index.html Viewer entry point. \u2502 \u2502 \u251c\u2500 themesConfig.json Themes configuration. \u2502 \u2502 \u2514\u2500 tenantConfig.json Master configuration file for qwc services. \u2502 \u251c\u2500 db/ Storage of configuration database (see Config DB ). \u2502 \u251c\u2500 info-templates/ Custom feature-info templates (see qwc-feature-info-service ). \u2502 \u251c\u2500 jasper-reports/ Jasper reports (see qwc-document-service ). \u2502 \u251c\u2500 legends/ Custom legend images (see qwc-legend-service ). \u2502 \u251c\u2500 qgs-resources/ QGIS projects and data referenced by the projects. \u2502 \u251c\u2500 qwc2/ QWC2 Viewer. \u2502 \u2514\u2500 solr/ Fulltext search index. \u251c\u2500 docker-compose.yml Container configuration file. \u251c\u2500 pg_service.conf Database service definitions. \u2514\u2500 pg_service-write.conf Database service definitions for write connections.","title":"qwc-docker layout"},{"location":"configuration/ServiceConfiguration/#service-configurations","text":"The master configuration file for the QWC services is located at qwc-docker/volumes/config-in//tenantConfig.json , where is the tenant name, default by default. See Multi Tenancy for more details on tenants. The file is structured as follows: { \"$schema\": \"https://github.com/qwc-services/qwc-config-generator/raw/master/schemas/qwc-config-generator.json\", \"service\": \"config-generator\", \"config\": { }, \"themesConfig\": \"./themesConfig.json\", \"services\": [ { \"name\": \" }, ... ] } Refer to the qwc-config-generator schema for the available ConfigGenerator config settings. themesConfig is a relative path to the theme configuration file as documented in Theme configuration . The services block contains the configuration for the individual QWC services, as documented in the reference . Note: All config settings can also be set as environment variables in capitalized form in docker-compose.yml . Note: Some variables must be set as environment variables in docker-compose.yml : ENV Default value Description INPUT_CONFIG_PATH config-in Base path for service configuration files OUTPUT_CONFIG_PATH /tmp Base path for service configuration files JWT_SECRET_KEY ******** secret key for JWT token TENANT_URL_RE None Regex for tenant extraction from base URL. Example: ^https?://.+?/(.+?)/ TENANT_HEADER None Tenant Header name. Example: Tenant","title":"Service configurations"},{"location":"configuration/ServiceConfiguration/#enabling-additional-services","text":"Add service entry in qwc-services/docker-compose.yml , setting the service mountpoint: SERVICE_MOUNTPOINT=/ Example: qwc-print-service: image: sourcepole/qwc-print-service:vYYYY.MM.DD environment: <<: *qwc-service-variables SERVICE_MOUNTPOINT: '/api/v1/print' volumes: - ./volumes/config:/srv/qwc_service/config:ro ports: - \"127.0.0.1:5020:9090\" Add corresponding entry in api-gateway/nginx.conf , example: location /api/v1/print { proxy_pass http://qwc-print-service:9090; } If necessary, uncomment/add the respective service url (see also the qwc-map-viewer schema reference ) in the mapViewer config block of volumes/config-in/default/tenantConfig.json , i.e. { \"name\": \"mapViewer\", \"generator_config\": { # ... }, \"config\": { \"print_service_url\": \"/api/v1/print/\", # ... } } Add the service configuration block below services in volumes/config-in/default/tenantConfig.json , according to the service config schema, i.e. { \"name\": \"print\", \"config\": { \"ogc_service_url\": \"http://qwc-ogc-service:9090/\", \"qgis_server_version\": \"3.16\" } }","title":"Enabling additional services"},{"location":"configuration/ServiceConfiguration/#configuration-database","text":"The Configuration database (CofigDB) contains the database schema qwc_config for configurations and permissions of QWC services. This database uses the PostgreSQL connection service qwc_configdb by default, which can be setup for the corresponding database in the PostgreSQL connection service file qwc-docker/pg_service.conf . To use an external configuration database, either change the connection definition for qwc_configdb in qwc-docker/pg_service.conf or change the config_db_url in qwc-docker/volumes/config-in//tenantConfig.json .","title":"Configuration database"},{"location":"configuration/ServiceConfiguration/#database-migrations","text":"Migrations to the ConfigDB are applied automatically by the qwc-base-db-migrate image which is included in the sample docker-compose-example.yml . To upgrade the ConfigDB to a newer version, it is sufficient to change the version of the image to the desired version, and migrations will be applied automatically next time the application is restarted. See the qwc-base-db README for more info.","title":"Database migrations"},{"location":"configuration/ServiceConfiguration/#keeping-qwc-services-up-to-date","text":"When using qwc-docker , updating the services is a simple as updating the image tags in qwc-docker/docker-compose.yml . Two versioning schemes are available: vYYYY-MM-DD : These refer to the latest available \"development\" version of the respective images (i.e. v2023.05.12 ). vYYYY.X-lts : These refer to the long term support version of the respective images (i.e. v2023.1-lts ). You can always check the available tags on dockerhub, for example at https://hub.docker.com/r/sourcepole/qwc-config-generator . In particular, to special tags exist, latest , latest-lts and latest-YYYY-lts (i.e. latest-2024-lts ) which always refer to the latest available \"development\" and long term support versions respectively. Note however that using these tags will result in docker automatically pulling new versions when the application is launched, which may be undesired. The qwc-docker Upgrade Notes documents major changes, and in particular all incompatible changes between releases which require changes to the application specific code and/or configuration.","title":"Keeping QWC services up to date"},{"location":"configuration/ThemesConfiguration/","text":"Themes configuration \u00b6 A theme corresponds to a QGIS project, published as WMS and served by QGIS Server. The basic steps for configuring a theme are: Create a QGIS project and deploy it to QGIS Server Writing the QWC2 theme configuration Generating the themes configuration Creating and publishing a QGIS project \u00b6 The first step is to prepare a QGIS project for publishing. Besides the common tasks of adding and styling layers, the following table gives an overview of settings which influence how the theme is displayed in QWC2: What Where Description Service Metadata Project Properties \u2192 QGIS Server \u2192 Service capabilities Shown in the theme info dialog, invokable from the Layer Tree panel titlebar. Title, keywords Project Properties \u2192 QGIS Server \u2192 Service capabilities Theme title, displayed in the Theme Switcher, and keywords, useful for filtering. Map extent Project Properties \u2192 QGIS Server \u2192 WMS \u2192 Advertised extent The extent used as initial map extent when loading the theme, unless overridden in themesConfig.json . Queryable layers Project Properties \u2192 Data sources Mark layers as identifyable by the client. FeatureInfo geometry Project Properties \u2192 QGIS Server \u2192 WMS Capabilities \u2192 Add geometry to feature response Return feature geometries with the GetFeatureInfo request. Allows the client to highlight the selected features. Layer Display Field Vector Layer Properties \u2192 Display The field used in the identify results. Layer Map Tip Vector Layer Properties \u2192 Display The contents of the Map Tip shown when hovering over layers in the client, if displaying Map Tips is enabled in the Layer Tree. Layer Metadata Layer Properties \u2192 QGIS Server Shown in the client Layer Info dialog, invokable from the Layer Tree. Scale range Layer Properties \u2192 Rendering \u2192 Scale dependent visibility The scale range within which a layer is visible, useful to improve rendering performance. Initial visibility Layers Panel Initial visibility of layers and groups. Rendering order Layer Order Panel or Layers Panel Rendering order of the layers. If layer re-ordering is enabled in config.json , the order from the Layer Order Panel is ignored. Print layouts Layout manager The print layouts offered in the Print plugin. Print layout labels Layout manager Print layout labels with an ID will be exposed in the Print plugin. Note: a label ID starting with __ will not be exposed. Attribute form Vector Layer Properties \u2192 Attributes Form The configured attribute form will be displayed when editing in QWC2. External layers Layer Properties \u2192 QGIS Server \u2192 Data URL Mark the layer as an external layer to avoid cascaded requests. See Configuring external layers . Then, store the project in the publishing directory of your QGIS Server instance. When using qwc-docker , store the project as *.qgs below qwc-docker/volumes/qgs-resources . Alternatively, when using qwc-docker , you can also store the project in a database in QGIS using Project \u2192 Save To \u2192 PostgreSQL (see Storing projects in database ). Ensuring valid datasources \u00b6 A common issue is that the project will reference datasources in locations which cannot be resolved when QGIS Server reads the project, in particular when running QGIS Server inside a docker container. To avoid such issues: Make sure that any file-based resources are located on the same level or below the level of the *.qgs project file. Remember to copy all resources along with the *.qgs project file to the server. Load any PostgreSQL datasource in QGIS using a service, and make sure the service definition exists both in the pg_service.conf on your host system as well as in the qwc_docker/pg_service.conf and qwc_docker/pg_service-write.conf which are mounted inside the docker containers. For instance, to use default qwc-docker database, use the qwc_geodb service and add the service definition to your host pg_service.conf as follows: [qwc_geodb] host=localhost port=5439 dbname=qwc_demo user=qwc_service password=qwc_service sslmode=disable Configuring the themes in themesConfig.json \u00b6 The next step is to configure the theme for QWC2. There are two approaches: Automatic theme configuration (only when using qwc-docker ): Just copy the project file to the designated location and the qwc-config-generator will automatically generate a theme configuration using default parameters. Manual theme configuration : Manually configure a theme with the full set of configuration options. Automatic theme configuration \u00b6 When using qwc-docker , save your QGIS projects below qwc-docker/volumes/qgs-resources/scan . Adjust the default settings ( defaultMapCrs , defaultBackgroundLayers , etc.) as desired in qwc-docker/volumes/config-in//themesConfig.json . Then generate the theme configuration . You can configure an automatically configured theme as default theme by setting defaultTheme in themesConfig.json to the path to the QGIS project file below qwc-docker/volumes/qgs-resources , without the .qgs extension. For example to set qwc-docker/volumes/qgs-resources/scan/project.qgs as default theme, you'd write ... \"defaultTheme\": \"scan/project\" ... To use a custom thumbnail for an automatically configured theme, place a an image called .png in qwc-docker/volumes/qwc2/assets/img/mapthumbs . For example. if the project is called project_name.qgs , the name thumbnail image would be named project_name.png . Note: The auto-scan directory can be is controlled by qgis_projects_scan_base_dir in qwc-docker/volumes/config-in//themesConfig.json . Manual theme configuration \u00b6 The theme configuration file is located as follows: Standalone viewer: qwc2-app/themesConfig.json qwc-docker : qwc-docker/volumes/config-in//themesConfig.json Note : when using qwc-docker , the themes configuration may also be embedded as themesConfig directly in qwc-docker/volumes/config-in//tenantConfig.json . The themesConfig.json file contains a list of themes, optionally organized in groups, as well as a list of background layers: { \"themes\": { \"items\": [ { }, ... ], \"groups\": [ { \"title\": , \"items\": [{ }, ...], \"groups\": [ { }, ...] }, ... ], \"externalLayers\": [ { }, ... ], \"themeInfoLinks\": [ { }, ... ], \"pluginData\": { \"\": [{ }, ...], ... }, \"backgroundLayers\": [ { }, ... ], }, \"defaultMapCrs\": \"\", \"defaultBackgroundLayers\": \"\", \"defaultWMSVersion\": \"\", \"defaultScales\": [], \"defaultPrintScales\" [], \"defaultPrintResolutions\": [], \"defaultSearchProviders\": [], \"defaultPrintGrid\": [], \"defaultTheme\": \"\" } Refer to External layers , Theme info links , Plugin data and Background layers for the format of the respective definitions. Refer to the sample themesConfig.json for a complete example. The format of the theme definitions is as follows: Entry Description \"id\": \"\", Theme identificator. Autogenerated if not specified. \"url\": \"\", The address of desired WMS served by QGIS Server. \"mapCrs\": \"\", Optional, map projection, defaults to defaultMapCrs . \"wmsOnly\": Optional, whether the entry should only be configured as a WMS, and not as a theme. \"title\": \"\", Optional, override WMS title. \"description\": \"\", Optional, an additional description to show below the theme title. \"thumbnail\": \"\", Optional, image file in assets/img/mapthumbs (see Viewer assets ). If omitted, .png will be used if it exists below assets/img/mapthumbs , otherwise it is autogenerated via WMS GetMap. \"attribution\": \"\", Optional, attribution which will be shown in the bottom right corner of the map. \"attributionUrl\": \"\", Optional, link associated to the attribution \"scales\": [], List of denominators of allowed map scales. If omitted, defaults to defaultScales . \"printScales\": [], List of denominators of allowed print scales. If omitted, defaults to defaultPrintScales . \"printResolutions\": [], List of available print resolutions. If an empty list, resolutions are freely choseable. If omitted, defaults to defaultPrintResolutions . \"printGrid\": [ List of grid scale-dependent grid intervals to use when printing. If omitted, defaults to defaultPrintGrid . \u2063 {\"s\": , \"x\": , \"y\": }, Keep this list sorted in descending order by scale denominator. \u2063 {\"s\": , \"x\": , \"y\": } In this example, {x: , y: } will be used for > Scale >= . ], \"defaultPrintLayout\": \"\", Optional, name of print layout to select by default. \"printLabelForSearchResult\": \"\", Optional, an ID of a print layout label to which the current search result text (if any) will be written to when printing. \"printLabelForAttribution\": \"\", Optional, an ID of a print layout label to which the current attribution text (if any) will be written to when printing. \"printLabelConfig\": { Optional, configuration of the text input fields for print layout labels. \u2063 \"\": { \u2063 \u2063 \"defaultValue\": \", Optional, default value. \u2063 \u2063