René-Luc Dhont

3Liz founder, QGIS user, QGIS Server contributor, and Lizmap developer


Sessions

10-05
11:00
30min
YAPT - Yet Another Plugin Tool: server, manager and packager
René-Luc Dhont

At 3Liz, for our internal needs, for our clients, and for deploying QGIS Server plugins on our Lizmap hosting infrastructure, we used a file server, XML files listing the available plugins, and qgis-plugin-manager.

qgis-plugin-manager is a command-line tool for managing installed QGIS plugins. Designed primarily for managing QGIS Server extensions, it also works with QGIS Desktop extensions.

Although functional, the file server and simple XML files for plugin deployment no longer met our needs.
We therefore developed a QGIS plugin deployment server without a user interface to deploy our plugins: the YAPT server. This plugin server features a simple REST API for retrieving the list of available plugins (QGIS-compatible) and for pushing a QGIS plugin archive:
* GET /plugins.xml?qgis=version
* &all=true - to get all available versions
* &pre=true - to get unstable versions
* &tags= - to filter by tag with values separated by comma
* &server=true - to filter only server plugins
* &deprecated=true - to get deprecated plugins
* POST /plugins/?status=[stable|unstable]

We have therefore also developed a plugin packaging tool that uses the YAPT server API: the YAPT package.

Finally, we have also developed a command-line tool that uses the YAPT server API: the YAPT Manager.

All of these developments were built using Rust and are available under an open-source license.

This presentation provides an opportunity to introduce all of these tools to the QGIS community.

Plugins & Development
Bridge 2
10-05
14:00
90min
🦎 Lizmap Web Client - 📊 Creating interactive data visualization (charts)
René-Luc Dhont, Michaël DOUCHIN

Lizmap Web Client is an open-source software allowing to publish web map applications based on QGIS projects.
All layers managed in QGIS can be visualized in Lizmap, and vector layers can also contain information that is worth displaying using charts: bar charts, line graphs, pie charts and tables.

The aim of this workshop is to demonstrate how to create and display plots in the Lizmap interface using vector data (PostgreSQL, FGB, CSV, etc.).

A project with ready-made data will be provided to the participants. We will use weather data from the website https://open-meteo.com/ (Free and open-source weather API).

You can view an example of how Lizmap can display graphs at this address:
https://demo.lizmap.com/lizmap/index.php/view/map?repository=features&project=land_use
In this demo, you can for example select another layer in the left panel (such as "
Postes clés") to see other charts, or choose a municipality in the combo box "Localisation" (top right of the map) to filter the visible charts for a specific municipality.

Workshop schedule:

  • Get the QGIS project and publish the first map
  • Presentation of the data (municipalities, weather)
  • The main principles of data visualisation in Lizmap
  • The different types of charts available (bar, pie, polar, histogram, HTML, etc.)
  • Creating and publishing charts on the web map
  • Filtering charts dynamically
  • Viewing filtered charts for the queried feature
  • Organizing charts with tabs and groups
  • HTML charts for greater flexibility
  • Printing using the server-side Dataplotly plugin
Short Workshop (90min)
Bridge 1-Short Workshops
10-05
16:30
30min
🎷 QJazz - QGIS Server ready for the cloud ☁
René-Luc Dhont

Through our Lizmap hosting service, we provide and monitor several hundred QGIS Servers. In response to the challenges we encountered, we developed Py-QGIS-Server as an open-source project. It enables efficient management of the QGIS project cache, long-running requests, automatic restart, available QGIS Server processes, and more.

But we needed to go further to create a version of QGIS Server perfectly suited for cloud services. So we developed and released an open-source project: QJazz. It uses a microservices architecture with gRPC (a high-performance open-source Remote Procedure Call framework) to control the various QGIS Server processes that manage OGC services.

QJazz is a suite of QGIS Server-based services, comprising: QGIS Server as a microservice and an OGC Processes server based on the QGIS processing module.

This is a set of modules that enable the deployment of QGIS-based servers and processing services compliant with the OGC API Processes standard. It aims to provide a solution for the scalable deployment of QGIS-based services on medium- to large-scale infrastructures and was developed to address certain challenges associated with processing large numbers of projects. The services are implemented as wrappers around the QGIS Server API and the QGIS Processing API. As a result, they support all the features and options of QGIS Server.

The objective of this presentation is to introduce QJazz, its architecture, and its features.

Databases & Web
Pegna
10-06
09:30
30min
🦎 Lizmap Web Client: next steps
René-Luc Dhont, Michaël DOUCHIN

In the 15 years since the first lines of code for Lizmap Web Client were written, the web has come a long way: JS frameworks, OpenLayers 3 through 10, WASM, Broadcast Channel, Storage API, WebGL, and more.

Over the past 15 years, Lizmap Web Client — an open-source web mapping application that integrates closely with QGIS Server — has had to evolve, and a new major release is on the horizon.

This presentation will provide an opportunity to showcase the latest features of Lizmap Web Client version 3.10: DXF export, map rotation based on the direction provided by geolocation, the ability to copy and paste an object’s geometry from a map layer during the digitization process, portfolio, and more.

But also to introduce the upcoming version 4 of Lizmap Web Client: removing OpenLayers 2, being able to detach the attribute table while maintaining the link to the map, etc.

Databases & Web
Pegna
10-06
14:00
30min
Managing a topological county road 🚗 network: linear referencing with QGIS & PostGIS
René-Luc Dhont, Michaël DOUCHIN

We used QGIS combined with the capabilities of PostGIS to create a plugin allowing to visualize and edit topological road network data with linear referencing capabilities.

The data is stored in a PostgreSQL database, and trigger functions are used to:
* Automatically populate certain fields (creation date, modification date, length, etc.)
* Respect topological rules (segments, nodes, connections, etc.)
* Automate certain tasks: automatically split roads at intersections, automatically create upstream and downstream nodes for segments, etc.

PostgreSQL functions are also used for linear referencing calculations: to determine the reference marker ID (“PR”), the curvilinear abscissa, the distance to the road (right or left). For example, “D809 PR 2+135, side G, offset 3.4 m” for a point on the map.

In QGIS, we have enabled the advanced editing options in the project properties to facilitate digitizing, including automatic transaction groups that allow users to immediately see how entering a feature affects other layers (clipping, moving, etc.). This allows users to see the results of the database calculations right away without having to save their edits.

We also made full use of QGIS's capabilities for interacting with the database:
* Advanced search by adding an item to QGIS's global search tool (shortcut “CTRL+K”) that automatically zooms in on a specific location using an address in the format “[road code] [marker] [abscissa]”
* Real-time display of references when hovering over a road via a toolbar button. When enabled, a query corresponding to the mouse coordinates is launched, and the database response is displayed
* Python actions for certain layers to initiate processing on an object. For example, a right-click allows you to finalize the creation of a roundabout based on the digitization of a circle at the intersection of road segments.

Of course, QGIS’s editing forms also ensure that attributes are edited correctly across different tables, particularly through expression constraints and advanced tools that provide drop-down lists, checkboxes, the ability to select a parent segment by clicking on the map (the “Relationship Reference” tool), and so on.

For the tool’s more complex functions, we created algorithms for the QGIS Processing toolbox: creating the structure (tables, functions), importing data, copying data into an editing sandbox, and validating that data.

In this presentation, we will demonstrate how QGIS addresses a complex business challenge while serving as a robust interface to a PostgreSQL database.

Plugins & Development
Bridge 2