Geospatial – Actualités

GeoMapFish et QGIS : un écosystème SIG

14 juin 2016

GeoMapFish est une application web SIG qui permet la diffusion de données spatiales sous forme de couches regroupées par thèmes. Elle propose également plusieurs fonctionnalités génériques par défaut (recherche de couches, recherche de données, interrogation, impression de carte(s)). Plusieurs interfaces proposent des fonctionnalités plus ciblées : principale, mobile et calcul d’itinéraire. Il est possible de rajouter des fonctionnalités métiers ou spécifiques à certains usages comme une liaison vers un autre outil métier. GeoMapFish propose également deux APIs (une simple et une étendue) afin d’intégrer des cartes au sein d’un CMS, par exemple.

Au niveau technique, les différents services sont basés sur des services REST, notamment la recherche dans les données, mais également des services OGC pour les flux de données WMS, WMTS et WFS(-T).

QGIS est une application SIG bureautique qui propose de nombreuses fonctionnalités de gestion et de traitement de données spatiales. Parmi ses nombreuses fonctionnalités, QGIS peut se connecter aux différents services OGC (WMS, WMTS et WFS-T) nativement mais peut également interagir avec des services REST tiers comme ceux de GeoMapFish.

En toute logique, il nous paraissait intéressant de connecter les deux afin de diffuser les données de manière centralisée et de proposer ainsi un écosystème technologique cohérent. Cet article présente quelques astuces pour réaliser cet écosystème. Nous nous baserons sur le portail de démo de GeoMapFish.

Accès aux services WMS et WMTS

GeoMapFish propose des services WMS et WMTS (tuiles en cache). Un proxy permet de s’assurer que l’utilisateur a les droits suffisants pour récupérer la liste des couches et les afficher. QGIS peut se connecter très facilement à ce genre de services et gérer l’authentification.

Au sein de QGIS, ouvrez la fenêtre de configuration de services WMS et WMTS avec l’outil « Ajouter une couche WMS » soit via le menu « Couche » > « Ajouter une couche » > « Ajouter une couche WMS «  , soit via la barre d’outils mActionAddWmsLayer.png.

Dans la fenêtre de gestion de vos services WMS, cliquez sur le bouton « Nouveau » et ajoutez le nouveau service suivant :

Ici, l’url est composée de l’hôte (geomapfish-demo.camptocamp.net) et du nom de l’instance (1.6) qui sont deux parties de l’url qui vont varier en fonction du portail. Le protocole https peut aussi être activé.

Dans le cas d’un service protégé, vous devez remplir le nom de l’utilisateur et le mot de passe dans l’onglet « Authentification ».

qgis_gmf_dialog_config_wms

Vous pouvez maintenant fermer cette fenêtre et cliquer sur le bouton « Connexion » puis choisir la (ou les) couche(s) à afficher et enfin fermer la fenêtre. La (ou les) couche(s) sélectionnée(s) s’affiche(nt).

Pour les services WMTS c’est tout aussi facile. Ouvrez de nouveau la fenêtre de configuration des services WMS et WMTS, cliquez sur « Nouveau » puis entrez les informations suivantes :

La méthode utilisée pour ce service WMTS est la méthode REST du standard. On le reconnaît à la présence de la chaîne « WMTSCapabilities.xml ».

Astuces : Afin d’améliorer la qualité du WMTS dans QGIS lors d’une reprojection, nous vous conseillons de cocher la case « Transformation lissée » qui améliorera le rendu de la carte (notamment les étiquettes) avec une petite perte de performance.

Le bouton « Connexion » permet d’afficher les jeux de tuiles disponibles dans l’onglet « Jeu de tuiles ». Choisissez celle qui vous convient.

En partant de ces deux couches dans le portail de démo GeoMapFish :

gmf_windows_wms_wmts

Voici le résultat :

qgis_gmf_windows_wms_wmts

Accès au flux WFS(-T)

Il y a deux services WFS distincts au sein de GeoMapFish : l’un basé sur MapServer et présent depuis plusieurs versions, l’autre, plus récent, basé sur TinyOWS. Ce dernier apporte la gestion complète du standard WFS, notamment le mode transactionnel.

Pour chaque service, c’est aussi le cas pour le service WMS d’ailleurs, l’utilisateur passe par un proxy afin de gérer les droits d’accès aux couches. Le proxy pour l’édition des données via le service WFS est celui-ci : https://geomapfish-demo.camptocamp.net/1.6/wsgi/tinyows_proxy

La configuration au sein de QGIS des services WFS-T est identique aux autres services : cliquez sur le bouton « Ajouter une couche WFS« , configurer le nouveau service WFS (nom, url et login/mot de passe), cliquez sur « Ok » puis sur « Connexion » et choisissez la couche.

qgis_gmf_dialog_config_wfs

Enfin, vous pouvez rentrer en mode édition dans QGIS comme n’importe quelle couche.

qgis_gmf_dialog_config_wfs_edition

Accès à la recherche

La recherche dans GeoMapFish se base sur un service REST et des données stockées dans un format spécifique pour réaliser des recherches très rapidement avec des termes approchant. Intégrer des couches du portail est intéressant mais interagir avec lui permet de garder une cohérence du SIG : données centralisées, services les diffusant soit vers un client léger soit vers un client lourd.

L’accès au module de recherche du portail a été intégré à l’extension QuickFinder. Celui-ci propose plusieurs moteurs de recherche : local (les fichiers projets), distant (OpenStreetMap et GeoMapFish).

La configuration de l’extension est accessible par le menu « Extension » > « Quick Finder » > « Settings ». Le 3ème onglet permet de configurer le moteur de recherche de GeoMapFish (et d’OpenStreetMap).

qgis_gmf_dialog_config_quickfinder

Service WMS

Le développement de GeoMapFish se base sur MapServer pour mettre en place les services de données. Cependant, d’autres serveurs ont été utilisés avec succès. QGIS server est l’un d’entre eux. Il apporte les mêmes fonctionnalités que MapServer.

Conclusion

Notre objectif est de permettre une excellente intégration de QGIS avec GeoMapfish. Les prochaines étapes se focaliseront sur la gestion de la configuration de GeoMapfish via QGIS.

  1. *
  2. *
  3. *
  4. *