Un plugin QGIS pour QWC

By mardi 12 mars 2024NewsFR

Etat des lieux

QGIS Web Client (QWC) est un client web responsive modulaire de nouvelle génération pour QGIS Server, construit avec ReactJS et OpenLayers et qui fonctionne avec un système de service. Il permet donc de visualiser dans une application cartographique web des projets QGIS.

Actuellement pour publier un projet QGIS il faut passer par l’interface d’administration web pour uploader le projet, ou bien le sauvegarder au bon endroit dans l’arborescence de l’instance QWC.

L’objectif du travail qui a été réalisé est donc d’améliorer l’intégration entre QGIS et son client web en permettant de publier un projet dans une instance QWC directement depuis l’interface de QGIS. Ce développement a été financé par la Direction des Systèmes d’Information et des Usages Numériques des Agences de l’eau

Pour atteindre cet objectif il a fallu développer deux choses.

Premièrement un nouveau service de publication pour assurer l’interaction entre le client QGIS et son client web QWC.

Et ensuite, un plugin QGIS pour interagir avec ce service de manière simple et intuitive.

Côté QWC : Le service de publication

Ce service de publication est nommé qwc-publish-service et est disponible sur notre GitLab.

Il s’agit d’une API REST permettant une gestion des projets avec des opérations de type CRUD (Create Read Update Delete). Le service est donc constitué de toutes les routes API nécessaires à la gestion de l’arborescence (créer/supprimer et déplacer des dossiers) et également à la gestion des projets (publier/mettre à jour/supprimer des projets). Ces routes sont détaillées dans le readme du projet.

Une option du service qwc-publish-service permet de générer automatiquement la configuration de l’application lors de chaque action. En cas d’échec de la génération, le service restaure l’état précédent (application d’un Rollback sur l’action). Il n’est par exemple pas possible de supprimer un projet qui est utilisé dans un thème ou bien de publier un projet vide.

Côté QGIS : Le plugin QWC2 Tools

Pour accompagner le service et rendre ces routes API utilisables de manière plus transparente nous avons développé un plugin QGIS nommé QWC2 Tools.

:warning: Pour fonctionner, ce plugin nécessite obligatoirement que l’instance QWC soit associée au service qwc-publish-service. Si le service peut fonctionner sans le plugin, l’inverse n’est pas possible.

Ce plugin fournit donc une interface intuitive et intégrée à QGIS. On y retrouve un explorateur dédié à QWC, dans lequel on retrouve l’arborescence des projets de l’instance.

Cet arbre est surplombé d’un bandeau contenant toutes Les actions possibles :

  • Publier un projet
  • Mettre à jour un projet
  • Supprimer un projet ou un dossier
  • Créer un dossier
  • Rafraîchir l’arbre
  • Ouvrir tous les dossiers
  • Fermer tous les dossiers
  • Accéder à la fenêtre des paramètres de l’instance

Certaines de ces actions sont également possibles par clic droit et double clic, directement dans l’arborescence. Pour déplacer un projet ou un dossier le drag and drop peut être utilisé.

Toutes les actions disponibles sont visibles dans la documentation.

Enfin ce plugin gère également la gestion de l’authentification aux instances QWC via le gestionnaire d’authentification natif de QGIS. Deux types d’authentification sont gérés, l’authentification simple avec utilisateur et mot de passe et l’authentification OIDC (OpenID Connect).

Démonstration