3Liz

Libérez vos SIG

QGIS-Plugin-Manager

Wed 12 January 2022

fr, en

Les extensions QGIS Serveur et comment les gérer

Extensions QGIS

Que serait QGIS sans ses extensions ? C'est surement la première chose que l'on fait une fois que l'on vient d'installer QGIS sur un nouvel ordinateur. On ouvre le gestionnaire des extensions et on installe nos extensions favorites.

QGIS Bureautique fournit une interface graphique intuitive pour gérer ses extensions. Vous pouvez facilement les lister, les installer ou les mettre à jour.

Astuce rapide, dans votre gestionnaire, onglet "Paramètres", n'oubliez pas de cocher la case Chercher des mises à jour au démarrage au moins une fois par mois. Cela serait triste de ne pas profiter des dernières fonctionnalités ou alors de continuer à voir le même bug alors qu'il est déjà corrigé dans une version récente.

Gestionnaire extension QGIS bureautique

Extension QGIS Serveur

Peut-être que vous ne le savez pas, mais vous pouvez ajouter des extensions sur QGIS Serveur également. Vous pouvez trouver la liste des extensions compatibles pour le serveur sur plugins.qgis.org. Une extension sur QGIS Serveur peut-être utile pour ajouter des nouvelles fonctionnalités ou alors modifier le fonctionnement par défaut. Regardons l'exemple concret de l'extension ci-dessous.

Un cas pratique, le cas de WfsOutputExtension

Le WFS est un standard défini par l'Open Geospatial Consortium afin de permettre aux utilisateurs de télécharger des données vectorielles de QGIS Serveur dans un client OGC tel que QGIS Bureautique, ArcGIS ou tout autre application Web-SIG (disonsLizmap Web Client par hasard). Par défaut, ce standard permet le téléchargement des données au format GML uniquement. Cependant, nos clients souhaitent pour la plupart télécharger dans des formats plus communs comme un shapefile compressé, un geopackage, un fichier ODS ou CSV.

C'est pourquoi à 3Liz, nous avons développé l'extension serveur WfsOutputExtension.

Cette extension ajoute des formats d'exports additionnels à la volée. En arrière-plan, il intercepte la requête GetCapabilities WFS et ajoute les formats supplémentaires dans la réponse.

Du côté du client OGC, l'utilisateur peut choisir un de ces formats lors de la demande des données vectorielles. C'est visible par exemple dans l'interface du client web Lizmap :

WfsOutputExtension en action

QGIS-Plugin-Manager

Comme dit plus haut, QGIS Bureautique permet, à l'aide d'une interface graphique intuitive, de gérer les extensions du dépôt principal QGIS. Mais quand vous êtes sur un serveur, il n'y a pas d'outil pour installer ou mettre à jour les extensions. À 3Liz, pour gérer notre infrastructure, nous utilisons des outils de déploiement comme Ansible pour installer les extensions.

Mais nous déployons aussi QGIS Serveur et Lizmap Web CLient sur les serveurs de nos clients, en dehors de notre infrastructure. Cela signifie qu'ils hébergent leur propre serveur et qu'ils nous demandent de faire l'installation et la maintenance de ce dernier. Dans ce contexte, nous installions au début les extensions QGIS Serveur à l'aide des commandes wget, unzip etc. Ceci n'est pas très pratique ni robuste sur long terme.

C'est pourquoi, j'ai commencé un petit outil Python en ligne de commande pour lister, installer et mettre à jour les extensions dans un environnement sans interface graphique (comme un serveur Linux).

Cet outil peut être installé avec PIP sur un serveur via la commande suivante :

pip3 install qgis-plugin-manager

Ensuite, vous pouvez utiliser la commande qgis-plugin-manager, par exemple pour avoir la liste des extensions depuis une console bash :

$ qgis-plugin-manager list
QGIS server version 3.19.0
List all plugins in /home/etienne/dev/qgis/server_plugin

----------------------------------------------------------------------------------------
|  Name            |  Version  |  QGIS min  |  QGIS max  |  Author         |  Action        |
----------------------------------------------------------------------------------------
|Lizmap            |master     |3.4         |3.99        |3Liz             |Unkown version   |
|wfsOutputExtension|1.5.3      |3.0         |            |3Liz             |                 |
|QuickOSM          |1.14.0     |3.4         |3.99        |Etienne Trimaille|Upgrade to 1.16.0|
|cadastre          |1.6.2      |3.0         |3.99        |3liz             |                 |
|atlasprint        |3.2.2      |3.10        |            |3Liz             |                 |
----------------------------------------------------------------------------------------

En arrière-plan, cet outil utilise les concepts d'APT et de PIP. Il est connecté par défaut au dépôt principal de QGIS, mais vous pouvez également utiliser votre propre dépôt d'extensions comme celui de 3liz : https://docs.3liz.org/plugins.xml.

Je vous suggère de lire la documentation dans le fichier readme. Ce projet est hébergé sur GitHub donc n'hésitez pas à faire des tickets ou encore mieux un "pull request" si vous voulez contribuer 😉.

Note, si vous avez déjà installé QGIS-Plugin-Manager, n'oubliez pas de faire la mise à jour de temps en temps : pip install --upgrade qgis-plugin-manager. Nous sommes actifs !

Etienne Trimaille