18.2.1. Premiers Pas

18.2.1.1. Installation sur systèmes Debian

Nous donnerons un guide d’installation court et simple pour une configuration de travail minimale sur les systèmes basés sur Debian (y compris Ubuntu et dérivés). Cependant, de nombreuses autres distributions et systèmes d’exploitation fournissent des packages pour QGIS Server.

Les exigences et les étapes pour ajouter des référentiels QGIS officiels pour installer QGIS Server actuel sur un système basé sur Debian sont fournies dans la page des installateurs QGIS <https://qgis.org/en/site/forusers/alldownloads.html> _ _.

Note

Dans Ubuntu, vous pouvez utiliser votre utilisateur normal, en ajoutant sudo aux commandes nécessitant des autorisations d’administrateur. Dans Debian, vous pouvez travailler en tant qu’administrateur (root), sans utiliser sudo.

Nous vous suggérons fortement d’installer la version LTR.

Une fois le référentiel choisi configuré, l’installation se fait simplement avec:

apt install qgis-server
# if you want to install server plugins, also:
apt install python-qgis

Vous pouvez tester l’installation en exécutant:

/usr/lib/cgi-bin/qgis_mapserv.fcgi

Si vous obtenez la sortie suivante, le serveur est correctement installé:

QFSFileEngine::open: No file name specified
Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable.
Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable.
Warning 1: Unable to find driver JP2ECW to unload from GDAL_SKIP environment variable.
Warning 1: Unable to find driver ECW to unload from GDAL_SKIP environment variable.
Warning 1: Unable to find driver JP2ECW to unload from GDAL_SKIP environment variable.
Content-Length: 206
Content-Type: text/xml; charset=utf-8

<ServiceExceptionReport version="1.3.0" xmlns="https://www.opengis.net/ogc">
 <ServiceException code="Service configuration error">Service unknown or unsupported</ServiceException>
</ServiceExceptionReport>

Ajoutons un exemple de projet. Vous pouvez utiliser les vôtres ou l’une des données de démonstration de la formation <https://github.com/qgis/QGIS-Training-Data/> `_:

mkdir /home/qgis/projects/
cd /home/qgis/projects/
wget https://github.com/qgis/QGIS-Training-Data/archive/v2.0.zip
unzip v2.0.zip
mv QGIS-Training-Data-2.0/exercise_data/qgis-server-tutorial-data/world.qgs .
mv QGIS-Training-Data-2.0/exercise_data/qgis-server-tutorial-data/naturalearth.sqlite .

Bien sûr, vous pouvez utiliser votre logiciel SIG préféré pour ouvrir ce fichier et jeter un œil à la configuration et aux couches disponibles.

18.2.1.1.1. Configuration d’un serveur HTTP

Pour exécuter le serveur QGIS, vous avez besoin d’un serveur Web. Les choix recommandés sont Apache ou Nginx.

Note

Dans ce qui suit, veuillez remplacer localhost par le nom ou l’adresse IP de votre serveur.

18.2.1.1.1.1. Apache

Installez Apache et mod_fcgid:

apt install apache2 libapache2-mod-fcgid
a2enmod cgi

QGIS Server est maintenant disponible sur http://localhost/. Pour vérifier, tapez dans un navigateur :

http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

Si vous obtenez quelque chose comme ça :

<WMS_Capabilities version="1.3.0" xsi:schemaLocation="http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd http://www.qgis.org/wms http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&REQUEST=GetSchemaExtension">
...

le serveur est correctement installé et répond via Apache.

Ajoutons maintenant les directives de configuration mod_fcgid pour QGIS Server:

# Tell QGIS Server instances to use a specific display number for xvfb
# necessary for printing, see below
FcgidInitialEnv DISPLAY ":99"
# Activate QGIS log (different from apache logs)
FcgidInitialEnv QGIS_SERVER_LOG_FILE /var/log/qgis/qgisserver.log
FcgidInitialEnv QGIS_SERVER_LOG_LEVEL "0"
FcgidInitialEnv QGIS_SERVER_LOG_STDERR "1"
FcgidInitialEnv QGIS_DEBUG 1
# Add a default QGIS project
SetEnv QGIS_PROJECT_FILE /home/qgis/projects/world.qgs
# QGIS_AUTH_DB_DIR_PATH must lead to a directory writeable by www-data
FcgidInitialEnv QGIS_AUTH_DB_DIR_PATH "/var/www/qgis-server/qgisserverdb/"
FcgidInitialEnv QGIS_AUTH_PASSWORD_FILE "/var/www/qgis-server/qgisserverdb/qgis-auth.db"

<IfModule mod_fcgid.c>
# Longer timeout for WPS... default = 40
FcgidIOTimeout 120
FcgidMaxRequestLen 26214400
FcgidConnectTimeout 60
</IfModule>

Note

Voir la documentation mod_fcgid pour plus d’informations sur les paramètres Fcgid utilisés. Et voir ci-dessous (xvfb) pour comprendre quand et pourquoi la variable d’environnement DISPLAY doit être définie.

Ces directives peuvent être ajoutées soit à /etc/apache2/mods-enabled/fcgid.conf pour une configuration à l’échelle du système, soit à un Apache spécifique VirtualHost, si vous voulez que le serveur QGIS soit disponible uniquement pour cette adresse; celui par défaut est disponible à /etc/apache2/sites-available/000-default.conf.

<Location /qgisserver>
 SetHandler fcgid-script
 FcgidWrapper /usr/lib/cgi-bin/qgis_mapserv.fcgi virtual
 Options +ExecCGI -MultiViews +FollowSymLinks
 Require all granted
</Location>

Créez ensuite tous les répertoires nécessaires avec les autorisations appropriées:

mkdir -p /var/log/qgis/
chown www-data:www-data /var/log/qgis
mkdir -p /var/www/qgis-server/qgisserverdb/
chown www-data:www-data /var/www/qgis-server/qgisserverdb/

Redémarrez maintenant Apache pour que la nouvelle configuration soit prise en compte :

systemctl restart apache2

QGIS Server est maintenant disponible sur http://localhost/qgisserver. Pour vérifier, tapez dans un navigateur, comme dans le cas simple :

http://localhost/qgisserver/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

18.2.1.1.1.2. NGINX

Vous pouvez également utiliser QGIS Server avec NGINX. Contrairement à Apache, NGINX ne génère pas automatiquement des processus FastCGI. Les processus FastCGI doivent être démarrés autrement.

Sur les systèmes basés sur Debian, vous pouvez utiliser spawn-fcgi ou fcgiwrap pour démarrer et gérer les processus QGIS Server. Les paquets Debian officiels existent pour les deux.

Avertissement

fcgiwrap est plus facile à configurer que spawn-fcgi, car il est déjà inclus dans un service Systemd. Mais cela conduit également à une solution beaucoup plus lente que l’utilisation de spawn-fcgi. Avec fcgiwrap, un nouveau processus QGIS Server est créé sur chaque demande, ce qui signifie que le processus d’initialisation de QGIS Server, qui comprend la lecture et l’analyse du fichier de projet QGIS, est effectué sur chaque demande. Avec spawn-fcgi, le processus QGIS Server reste actif entre les requêtes, ce qui améliore considérablement les performances. Pour cette raison, spawn-fcgi est recommandé pour une utilisation en production.

Une autre option consiste à s’appuyer sur Systemd, le système d’initialisation pour GNU / Linux que la plupart des distributions Linux utilisent aujourd’hui. L’un des avantages de cette méthode est qu’elle ne nécessite aucun autre composant ou processus. Il est censé être simple, mais robuste et efficace pour les déploiements de production.

Install NGINX:

apt install nginx
18.2.1.1.1.2.1. spawn-fcgi

Si vous voulez utiliser spawn-fcgi, la première étape est d’installer le paquet :

apt install spawn-fcgi

Ensuite, introduisez le bloc suivant dans votre configuration de serveur NGINX :

location /qgisserver {
    gzip           off;
    include        fastcgi_params;
    fastcgi_pass   unix:/var/run/qgisserver.socket;
}

Et redémarrez NGINX pour prendre en compte la nouvelle configuration :

service nginx restart

Enfin, étant donné qu’il n’y a pas de fichier de service par défaut pour spawn-fcgi, vous devez démarrer manuellement QGIS Server dans votre terminal :

spawn-fcgi -s /var/run/qgisserver.socket \
                -U www-data -G www-data -n \
                /usr/lib/cgi-bin/qgis_mapserv.fcgi

todo: Ajoutez des instructions pour ajouter un spawn-fcgi.service

QGIS Server est maintenant disponible sur http://localhost/qgisserver.

Note

Avec la commande ci-dessus, spawn-fcgi ne génère qu’un seul processus QGIS Server. Pour utiliser plus d’un processus QGIS Server, vous pouvez combiner spawn-fcgi avec l’outil multiwatch, qui est également empaqueté dans Debian.

Bien sûr, vous pouvez ajouter un script d’initialisation (comme un fichier qgis-server.service avec systemd) pour démarrer QGIS Server au démarrage ou quand vous le souhaitez.

todo: Ajoutez des instructions pour ajouter un qgis-server.service

18.2.1.1.1.2.2. fcgiwrap

L’utilisation de fcgiwrap <https://www.nginx.com/resources/wiki/start/topics/examples/fcgiwrap/> _ est beaucoup plus facile à configurer que spawn-fcgi mais elle est beaucoup plus lente. Vous devez d’abord installer le package correspondant:

apt install fcgiwrap

Ensuite, introduisez le bloc suivant dans votre configuration de serveur NGINX :

1
2
3
4
5
6
  location /qgisserver {
      gzip           off;
      include        fastcgi_params;
      fastcgi_pass   unix:/var/run/fcgiwrap.socket;
      fastcgi_param  SCRIPT_FILENAME /usr/lib/cgi-bin/qgis_mapserv.fcgi;
  }

Enfin, redémarrez NGINX et fcgiwrap pour prendre en compte la nouvelle configuration :

service nginx restart
service fcgiwrap restart

QGIS Server est maintenant disponible sur http://localhost/qgisserver.

18.2.1.1.1.2.3. Configuration

include fastcgi_params; utilisé dans la configuration précédente est important car il ajoute les paramètres de /etc/nginx/fastcgi_params:

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

Vous pouvez bien sûr, remplacer ces variables dans votre propre configuration. Par exemple :

include fastcgi_params;
fastcgi_param SERVER_NAME domain.name.eu;

De plus, vous pouvez utiliser certains Variables d’environnement pour configurer QGIS Server. Avec NGINX comme serveur HTTP, vous devez utiliser fastcgi_param pour définir ces variables comme indiqué ci-dessous :

fastcgi_param  QGIS_DEBUG              1;
fastcgi_param  QGIS_SERVER_LOG_FILE    /var/log/qgis/qgisserver.log;
fastcgi_param  QGIS_SERVER_LOG_LEVEL   0;

Note

Lors de l’utilisation de spawn-fcgi, vous pouvez définir directement les variables d’environnement avant d’exécuter le serveur. Par exemple : export QGIS_SERVER_LOG_FILE=/var/log/qgis/qgisserver.log

18.2.1.1.1.2.4. Systemd

Cette méthode pour déployer QGIS Server repose sur deux unités Systemd:

  • un Socket unit <https://www.freedesktop.org/software/systemd/man/systemd.socket.html> _ _

  • et une Unité de service <https://www.freedesktop.org/software/systemd/man/systemd.service.html> _.

L’unité QGIS Server Socket définit et crée une socket de système de fichiers, utilisée par NGINX pour démarrer et communiquer avec QGIS Server. L’unité Socket doit être configurée avec Accept=false, ce qui signifie que les appels à l’appel système accept() sont délégués au processus créé par l’unité de service. Il se trouve dans /etc/systemd/system/qgis-server@.socket, qui est en fait un modèle:

[Unit]
Description=QGIS Server Listen Socket (instance %i)

[Socket]
Accept=false
ListenStream=/var/run/qgis-server-%i.sock
SocketUser=www-data
SocketGroup=www-data
SocketMode=0600

[Install]
WantedBy=sockets.target

Maintenant, activez et démarrez les sockets:

systemctl enable [email protected]
systemctl start [email protected]
systemctl enable [email protected]
systemctl start [email protected]
systemctl enable [email protected]
systemctl start [email protected]
systemctl enable [email protected]
systemctl start [email protected]

L’unité de service QGIS Server définit et démarre le processus QGIS Server. L’important est que l’entrée standard du processus de service soit connectée à la prise définie par l’unité Socket. Cela doit être configuré en utilisant StandardInput = socket dans la configuration de l’unité de service située dans /etc/systemd/system/qgis-server@.service:

[Unit]
Description=QGIS Server Service (instance %i)

[Service]
User=www-data
Group=www-data
StandardOutput=null
StandardError=journal
StandardInput=socket
ExecStart=/usr/lib/cgi-bin/qgis_mapserv.fcgi
EnvironmentFile=/etc/qgis-server/env

[Install]
WantedBy=multi-user.target

Maintenant, lancez le service de socket:

sudo systemctl start [email protected]

Notez que les QGIS Server environment variables 1 sont définies dans un fichier séparé, /etc/qgis-server/env. Cela pourrait ressembler à ceci:

QGIS_PROJECT_FILE=/etc/qgis/myproject.qgs
QGIS_SERVER_LOG_STDERR=1
QGIS_SERVER_LOG_LEVEL=3

Enfin, introduisez la configuration NGINX pour cette configuration:

upstream qgis-server_backend {
   server unix:/var/run/qgis-server-1.sock;
   server unix:/var/run/qgis-server-2.sock;
   server unix:/var/run/qgis-server-3.sock;
   server unix:/var/run/qgis-server-4.sock;
}

server {
   

   location /qgis {
       gzip off;
       include fastcgi_params;
       fastcgi_pass qgis-server_backend;
   }
}

Redémarrez maintenant NGINX pour que la nouvelle configuration soit prise en compte:

service nginx restart

Merci à Oslandia d’avoir partagé leur tutoriel <https://oslandia.com/en/2018/11/23/deploying-qgis-server-with-systemd/> _.

18.2.1.1.2. Xvfb

QGIS Server a besoin d’un serveur X en cours d’exécution pour être pleinement utilisable, en particulier pour l’impression. Sur les serveurs, il est généralement recommandé de ne pas l’installer, vous pouvez donc utiliser xvfb pour avoir un environnement X virtuel.

Pour installer ce paquet :

apt install xvfb

Ensuite, selon votre serveur HTTP, vous devez configurer le paramètre DISPLAY ou utiliser directement xvfb-run.

Avec Apache vous ajoutez simplement à votre configuration Fcgi (voir ci-dessus):

FcgidInitialEnv DISPLAY       ":99"

Créer le fichier de service:

sh -c \
"echo \
'[Unit]
Description=X Virtual Frame Buffer Service
After=network.target

[Service]
ExecStart=/usr/bin/Xvfb :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset

[Install]
WantedBy=multi-user.target' \
> /etc/systemd/system/xvfb.service"

Activer, démarrer et vérifier le statut de xvfb.service:

systemctl enable xvfb.service
systemctl start xvfb.service
systemctl status xvfb.service

Redémarrez maintenant Apache pour que la nouvelle configuration soit prise en compte :

systemctl restart apache2

Avec NGINX et spawn-fcgi en utilisant xvfb-run:

xvfb-run /usr/bin/spawn-fcgi -f /usr/lib/cgi-bin/qgis_mapserv.fcgi \
                             -s /tmp/qgisserver.socket \
                             -G www-data -U www-data -n

L’autre option est de démarrer un environnement de serveur X virtuel avec un numéro d’affichage spécifique grâce à Xvfb:

/usr/bin/Xvfb :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset

Il suffit ensuite de définir la variable d’environnement DISPLAY dans la configuration du serveur HTTP. Par exemple avec NGINX:

fastcgi_param  DISPLAY       ":99";

18.2.1.2. Installation sous Windows

QGIS Server peut également être installé sur les systèmes Windows. Bien que le package QGIS Server soit disponible dans la version 64 bits du programme d’installation réseau OSGeo4W (https://qgis.org/en/site/forusers/download.html), aucun package Apache (ou autre serveur Web) n’est disponible, donc cela doit être installé par d’autres moyens.

Une procédure simple est la suivante:

../../../../_images/qgis_server_windows1.png
  • Téléchargez le programme d’installation d’OSGeo4W, suivez la « Installation avancée » et installez les packages QGIS Desktop et QGIS Server

../../../../_images/qgis_server_windows2.png
  • Modifiez le fichier httpd.conf ( C:\xampp\apache\httpd.conf si les chemins d’installation par défaut ont été utilisés) et apportez les modifications suivantes:

De :

ScriptAlias /cgi-bin/ "C:/xampp/cgi-bin/"

À :

ScriptAlias /cgi-bin/ "c:/OSGeo4W64/apps/qgis/bin/"

De :

<Directory "C:/xampp/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

À :

<Directory "c:/OSGeo4W64/apps/qgis/bin">
SetHandler cgi-script
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
Require all granted
</Directory>

De :

AddHandler cgi-script .cgi .pl .asp

À :

AddHandler cgi-script .cgi .pl .asp .exe

Puis ajoutez à la fin de httpd.conf :

SetEnv GDAL_DATA "C:\OSGeo4W64\share\gdal"
SetEnv QGIS_AUTH_DB_DIR_PATH "C:\OSGeo4W64\apps\qgis\resources"
SetEnv PYTHONHOME "C:\OSGeo4W64\apps\Python37"
SetEnv PATH "C:\OSGeo4W64\bin;C:\OSGeo4W64\apps\qgis\bin;C:\OSGeo4W64\apps\Qt5\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem"
SetEnv QGIS_PREFIX_PATH "C:\OSGeo4W64\apps\qgis"
SetEnv QT_PLUGIN_PATH "C:\OSGeo4W64\apps\qgis\qtplugins;C:\OSGeo4W64\apps\Qt5\plugins"

Redémarrez le serveur Web Apache à partir du panneau de configuration XAMPP et ouvrez la fenêtre du navigateur pour tester une demande GetCapabilities vers QGIS Server

http://localhost/cgi-bin/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

18.2.1.3. Servir un projet

Maintenant que QGIS Server est installé et fonctionne, il ne nous reste plus qu’à l’utiliser.

De toute évidence, nous avons besoin d’un projet QGIS pour travailler. Bien sûr, vous pouvez personnaliser entièrement votre projet en définissant les coordonnées, préciser certaines restrictions sur CRS ou même exclure certaines couches. Tout ce que vous devez savoir à ce sujet est décrit plus loin dans Configurer votre projet.

Mais pour l’instant, nous allons utiliser un projet simple déjà configuré et préalablement téléchargé dans /home/qgis/projects/world.qgs, comme décrit ci-dessus.

En ouvrant le projet et en jetant un coup d’œil sur les couches, nous savons que 4 couches sont actuellement disponibles:

  • airports

  • places

  • countries

  • countries_shapeburst

Vous n’avez pas besoin de comprendre la demande complète pour l’instant mais vous pouvez récupérer une carte avec certaines des couches précédentes grâce à QGIS Server en faisant quelque chose comme ceci dans votre navigateur Web pour récupérer la couche countries:

http://localhost/qgisserver?
  MAP=/home/qgis/projects/world.qgs&
  LAYERS=countries&
  SERVICE=WMS&
  REQUEST=GetMap&
  CRS=EPSG:4326&
  WIDTH=400&
  HEIGHT=200

Si vous obtenez l’image suivante, QGIS Server s’exécute correctement:

../../../../_images/server_basic_getmap.png

Fig. 18.6 Réponse du serveur à une demande GetMap de base

Notez que vous pouvez définir la variable d’environnement PROJECT_FILE pour utiliser un projet par défaut au lieu de donner un paramètre MAP (voir Variables d’environnement).

Par exemple avec spawn-fcgi :

export PROJECT_FILE=/home/qgis/projects/world.qgs
spawn-fcgi -f /usr/lib/bin/cgi-bin/qgis_mapserv.fcgi \
           -s /var/run/qgisserver.socket \
           -U www-data -G www-data -n

18.2.1.4. Configurer votre projet

Pour fournir un nouveau QGIS Server WMS, WFS ou WCS, vous devez créer un fichier de projet QGIS avec des données ou utiliser l’un de votre projet actuel. Définissez les couleurs et les styles des couches dans QGIS et le projet CRS, s’ils ne sont pas déjà définis.

../../../../_images/ows_server_definition.png

Fig. 18.7 Définitions pour un projet WMS/WFS/WCS de QGIS Server

Ensuite, allez dans le menu QGIS Server de la boîte de dialogue Projet -> Propriétés … et fournissez des informations sur OWS dans les champs sous Service Capabilities. Cela apparaîtra dans la réponse GetCapabilities du WMS, WFS ou WCS. Si vous ne cochez pas checkbox Capacités de service, QGIS Server utilisera les informations fournies dans le fichier wms_metadata.xml situé dans le dossier cgi-bin.

18.2.1.4.1. Capacités WMS

Dans la section Capacités WMS, vous pouvez définir l’étendue publiée dans la réponse WMS GetCapabilities en entrant les valeurs X et Y minimales et maximales dans les champs sous Etendue publiée. En cliquant sur Utiliser l’étendue actuelle du canevas définit ces valeurs dans la mesure actuellement affichée dans le canevas de carte QGIS. En cochant checkbox CRS restrictions, vous pouvez restreindre dans quels systèmes de référence de coordonnées (CRS) QGIS Server proposera de rendre les cartes. Il est recommandé de restreindre le CRS proposé car cela réduit la taille de la réponse WMS GetCapabilities. Utilisez le signPlus bouton ci-dessous pour sélectionner ces CRS dans le sélecteur de système de référence de coordonnées, ou cliquez sur Utilisé pour ajouter les CRS utilisés dans le projet QGIS à la liste.

Si des mises en page sont définies dans votre projet, elles seront répertoriées dans la réponse GetProjectSettings, et elles peuvent être utilisées par la demande GetPrint pour créer des impressions, en utilisant l’une des mises en page d’impression comme modèle. Il s’agit d’une extension spécifique à QGIS de la spécification WMS 1.3.0. Si vous souhaitez exclure toute mise en page d’impression de la publication par le WMS, checkbox :guilabel: Exclure les mises en page et cliquez sur le signPlus bouton ci-dessous. Ensuite, sélectionnez une mise en page d’impression dans la boîte de dialogue Sélectionner la mise en page d’impression afin de l’ajouter à la liste des mises en page exclues.

Si vous souhaitez exclure une couche ou un groupe de couches de la publication par le WMS, checkbox Exclure couches et cliquez sur le signPlus bouton ci-dessous. Cela ouvre la boîte de dialogue Sélectionner les couches et groupes restreints, qui vous permet de choisir les couches et les groupes que vous ne souhaitez pas publier. Utilisez la touche Shift ou Ctrl si vous souhaitez sélectionner plusieurs entrées. Il est recommandé d’exclure de la publication les couches dont vous n’avez pas besoin car cela réduit la taille de la réponse WMS GetCapabilities, ce qui entraîne des temps de chargement plus rapides côté client.

Vous pouvez recevoir la réponse GetFeatureInfo en texte simple, XML et GML. Le format par défaut est le XML. Le texte simple et le GML dépendent du format de sortie choisi lors de la requête GetFeatureInfo.

Si vous le souhaitez, vous pouvez cocher la case checkbox Add geometry to feature response. Cela comprendra l’étendue pour chaque entité dans la réponse GetFeatureInfo. Voir aussi le paramètre WITH_GEOMETRY.

Comme de nombreux clients Web ne peuvent pas afficher d’arcs de cercle dans les géométries, vous avez la possibilité de segmenter la géométrie avant de l’envoyer au client dans une réponse GetFeatureInfo. Cela permet à ces clients d’afficher toujours la géométrie d’une entité (par exemple pour mettre en évidence l’entité). Vous devez checkbox Segmentez la géométrie des informations d’entité pour activer l’option.

Vous pouvez également utiliser l’option: guilabel:GetFeatureInfo geometry precision pour définir la précision de la géométrie GetFeatureInfo. Cela vous permet d’économiser de la bande passante lorsque vous n’avez pas besoin de la précision totale.

Si vous souhaitez que QGIS Server publie des URL de demande spécifiques dans la réponse WMS GetCapabilities, entrez l’URL correspondante dans le champ URL publiée.

De plus, vous pouvez restreindre la taille maximale des cartes renvoyées par la demande GetMap en entrant la largeur et la hauteur maximales dans les champs respectifs sous Maximums for GetMap request.

Si une de vos couches utilise l’affichage d’indication de carte <maptips>`(pour afficher du texte issu d’expressions), cette dernière sera listée au sein de la sortie GetFeatureInfo. Si la couche utilise une Valeur Relationnelle pour un de ses attributs, cette information sera également renvoyée par la sortie de GetFeatureInfo.

18.2.1.4.2. Capacités WFS

Dans la partie Capacités WFS, vous pouvez sélectionner les couches qui vous voulez publier en WFS et indiquer si elle permettent les opérations de mise à jour, d’insertion et de suppression. Si vous ajoutez une URL dans le champ URL publiée des Capacités WFS, QGIS Server annoncera cette URL spécifique dans la réponse WFS GetCapabilities.

18.2.1.4.3. Capacités WMS

Dans la partie Capacités WCS, vous pouvez sélectionner les couches qui vous voulez publier en WCS. Si vous indiquez une URL dans le champ URL publiée de la section Capacités WCS, QGIS Server annoncera cette URL spécifique dans la réponse WCS GetCapabilities.

18.2.1.4.4. Bien configurer votre OWS

Pour les couches vectorielles, le menu Champs de la boîte de dialogue Couche -> Propriétés de la couche vous permet de définir pour chaque attribut s’il sera publié ou non. Par défaut, tous les attributs sont publiés par votre WMS et WFS. Si vous ne voulez pas qu’un attribut spécifique soit publié, décochez la case correspondante dans la colonne WMS ou WFS.

Vous pouvez superposer des filigranes sur les cartes produites par votre WMS en ajoutant des annotations de texte ou des annotations SVG au fichier de projet. Voir la section Outils d’annotation pour des instructions sur la création d’annotations. Pour que les annotations soient affichées sous forme de filigranes sur la sortie WMS, la case à cocher Position de la carte fixe dans la boîte de dialogue Texte d’annotation doit être décochée. Vous pouvez y accéder en double-cliquant sur l’annotation alors que l’un des outils d’annotation est actif. Pour les annotations SVG, vous devrez soit définir le projet pour enregistrer des chemins absolus (dans le menu Général de la Projet -> Propriétés …) soit modifier manuellement le chemin d’accès à l’image SVG afin qu’elle représente un chemin relatif valide.