Un premier contact avec QGIS server

J’avais déjà entendu parler de QGIS server. J’ai donc voulu me pencher dessus pour voir à quoi ça servait.

Or, comme souvent, si l’on trouve des documentations indiquant comment installer et utiliser l’outil, on ne trouve pas toujours quelque chose qui explique, en quelques mots, à quoi ça sert. Alors je vais le faire ici.

Ensuite, on verra rapidement comment l’installer et le tester. Pour le reste, je vous laisse jouer avec.

À quoi sert QGIS server ?

Ce logiciel s’installe, comme son nom l’indique, sur un serveur web. Il permet de publier en ligne un projet qu’on aura créé avec QGIS (concrètement : un .qgs et les différentes couches qui composent le projet, par exemple sous forme de Shapefiles).

Le projet pourra être publié de deux façons, correspondant à deux protocoles : WMS ou WFS.

WMS

Quand vous créez un projet dans QGIS, vous ajoutez des couches et leur attribuez, si vous le souhaitez, un rendu qui vous permettra de générer une carte. Celle-ci pourra être imprimée, exportée sous forme d’image, etc.

QGIS server peut, à partir des mêmes fichiers, produire un rendu identique et le transmettre à un client via le protocole WMS.

Ce client peut être votre QGIS habituel : plutôt que d’ajouter une couche vecteur ou raster, vous ajouterez une couche WMS, indiquerez l’URL du serveur, et obtiendrez dans votre QGIS un raster chargé dynamiquement. Ce raster n’est autre que le rendu du projet que vous aviez créé avec QGIS et envoyé sur votre serveur.

WFS

Obtenir un raster correspondant au rendu de votre projet, c’est bien. Mais vous pouvez vouloir aussi obtenir les couches de données composant le projet.

C’est justement ce que fait QGIS server avec le protocole WFS.

Comment l’installer ?

Sur une machine Debian Wheezy disposant déjà d’Apache.

Éditez /etc/apt/sources.list et ajoutez ces lignes :

deb http://qgis.org/debian wheezy main
deb-src http://qgis.org/debian wheezy main

Ensuite, en root :

apt-get install qgis-server libapache2-mod-fcgid qgis qgis-providers
a2enmod cgid
service apache2 restart

Comment mettre un projet en ligne ?

Sur le serveur, en root :

cd /usr/lib/cgi-bin/
mkdir nom_de_votre_projet
cd nom_de_votre_projet
ln -s ../qgis_mapserv.fcgi .
ln -s ../wms_metadata.xml .

Copiez ensuite les fichiers de votre projet dans le répertoire /usr/lib/cgi-bin/nom_de_votre_projet

Pour faire un test avec un simple navigateur :

Chargez http://adresse_de_votre_serveur/cgi-bin/nom_de_votre_projet/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities dans un navigateur. Cela doit vous afficher un fichier XML.

Pour faire un test en WMS :

Dans QGIS :
- Ajouter une couche WMS,
- Nouveau,
- Indiquez un nom et l’adresse, de la forme : http://adresse_de_votre_serveur/cgi-bin/nom_de_votre_projet/qgis_mapserv.fcgi
- OK,
- Connexion,
- Sélectionnez les couches à afficher,
- Ajouter.

Votre projet s’affiche dans QGIS sous la forme d’une couche raster.

Pour faire un test en WFS :

Dans QGIS :
- Ajouter une couche WFS,
- Nouveau,
- Indiquez un nom et l’adresse, de la forme : http://adresse_de_votre_serveur/cgi-bin/nom_de_votre_projet/qgis_mapserv.fcgi
- OK,
- Connexion,
- Sélectionnez les couches à afficher,
- Ajouter.

Les couches que vous avez sélectionnées s’affichent dans QGIS, sous leur forme d’origine (vecteur ou raster).

Pour aller plus loin :

Cet article n’est qu’une introduction hyper rapide, et un aide mémoire pour moi. Il n’a pas d’avantage d’ambition.

Je n’ai pas parlé du rôle du fichier wms_metadata.xml auquel je vous conseille de jeter un œil. Je vous conseille également, pour des projets plus importants qu’un petit test, de ne pas les ranger directement dans /usr/lib/cgi-bin/nom_de_votre_projet mais d’utiliser des liens. Etc.

Voici quelques liens qui peuvent être utiles :

Les données OGC dans la doc de QGIS.
QGIS server tutorial (en anglais) dans la doc de QGIS.
Premiers pas avec QGIS server sur le blog Makina-corpus.
QGIS comme serveur de données OGC dans la doc de QGIS.
Un article sur le blog de 3liz qui parle de leur travail pour implémenter le WFS dans QGIS server (merci à eux) et donne des infos utiles.

Si quelque chose dans l’article n’est pas clair ou faux, laissez un commentaire.

Ce contenu a été publié dans Astuces, Informatique. Vous pouvez le mettre en favoris avec ce permalien.

4 réponses à Un premier contact avec QGIS server

  1. aladine dit :

    Bonjour !
    Est ce qu’il est possible de générer les cartes suite à des requêtes paramétrées ? Peut on faire en sorte que ce soit l’utilisateur qui choisit les données à afficher ?

  2. rieux dit :

    je voudrais connaitre le linéaire précis et la surface de voirie communale et départementale

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>