QGIS comme client de données OGC

L’OGC (Open Geospatial Consortium) est une organisation internationale à laquelle participent plus de 300 organisations commerciales, gouvernementales, associatives et laboratoires de recherche à travers le monde. Ses membres développent et implémentent des standards pour les services et le contenu géospatial, le traitement de données SIG et les formats d’échange.

Describing a basic data model for geographic features, an increasing number of specifications are developed by OGC to serve specific needs for interoperable location and geospatial technology, including GIS. Further information can be found at https://www.opengeospatial.org/.

Les spécifications importantes de l’OGC prises en charge par QGIS sont :

Les services OGC sont de plus en plus utilisés pour échanger des données géospatiales entre différentes implémentations SIG et des fournisseurs de données. QGIS peut maintenant traiter les spécifications citées ci-dessus dont le SFS (via PostgreSQL / PostGIS, voir section Couches PostGIS).

Client WMS / WMTS

Aperçu de la gestion du WMS

QGIS peut actuellement agir comme client WMS pour les versions 1.1, 1.1.1 et 1.3 des serveurs WMS. Il a été tout particulièrement testé avec des serveurs accessibles publiquement comme ceux de DEMIS.

Un serveur WMS agit en fonction des requêtes envoyées par le client (par exemple QGIS) pour une carte raster avec une étendue donnée, un ensemble de couches, une sémiologie et une transparence. Le serveur WMS consulte alors ses sources de données locales, rasterise la carte et la renvoie au client dans un format raster. Pour QGIS, cela sera par exemple du JPEG ou du PNG.

Un WMS est de manière générale un service web mis en œuvre selon une architecture REST (Representational State Transfer) plutôt qu’un service RPC (Remote Procedure Call) pleinement déployé. De cette façon, vous pouvez copier les adresses générées par QGIS et les coller dans un navigateur internet pour retrouver les mêmes images que dans QGIS. Cela peut être très pratique pour résoudre des problèmes, car de fait il y a plusieurs modèles de serveur WMS sur le marché, chacun ayant son interprétation du standard WMS.

Des couches WMS peuvent être ajoutées assez simplement, du moment que vous connaissez l’URL pour accéder au serveur WMS, vous avez une connexion sous forme de service sur ce serveur, et celui-ci comprend le protocole HTTP comme mécanisme de transport.

Additionally, QGIS will cache your WMS responses (i.e. images) for 24h as long as the GetCapabilities request is not triggered. The GetCapabilities request is triggered everytime the Connect button in the Add Layer(s) from WMS(T) Server dialog is used to retrieve the WMS server capabilities. This is an automatic feature meant to optimize project loading time. If a project is saved with a WMS layer, the corresponding WMS tiles will be loaded from the cache the next time the project is opened as long as they are no older than 24H.

Aperçu du support WMTS

QGIS peut aussi agir comme client WMTS. WMTS est un standard OGC de diffusion des données cartographiques sous formes de tuiles prédéfinies. C’est un moyen de diffusion plus rapide et plus efficient que le standard WMS car les tuiles sont générées à l’avance et les requêtes clientes ne portent que sur la transmission des tuiles, non leur production. A contrario, une requête WMS implique à la fois la génération des données et leur transmission. Un exemple bien connu d’utilisation de données cartographiques tuilées, non conforme au standard OGC, est Google Maps.

Afin d’afficher des données à différentes échelles proches de celles souhaitées par l’utilisateur, les dalles WMTS sont produites à différents niveaux d’échelle et peuvent être demandées par une application SIG cliente.

Ce diagramme illustre le concept de tuiles prédéfinies:

../../../_images/concept_wmts.png

Le concept de tuiles prédéfinies WMTS

Les deux types d’interfaces WMTS que QGIS gère sont les paires clef-valeurs (KVP) et RESTful. Ces deux interfaces sont différentes et vous devrez les paramétrer de manière différente dans QGIS.

  1. Pour accéder à un service WMTS KVP, l’utilisateur doit ouvrir l’interfaces WMS/WMTS et ajouter la chaîne de caractères suivante à l’URL du service de tuile WMTS :

    "?SERVICE=WMTS&REQUEST=GetCapabilities"
    

    Un exemple de ce type d’adresse est

    https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?\
      service=WMTS&request=GetCapabilities
    

    Pour les tests, la couche topo2 de ce WMTS fonctionne correctement. Ajouter cette chaîne indique que le service web WMTS est utilisé à la place du service WMS.

  2. Le service RESTful WMTS prend la forme différente d’une URL classique. Le format recommandé par l’OGC est le suivant:

    {WMTSBaseURL}/1.0.0/WMTSCapabilities.xml
    

    This format helps you to recognize that it is a RESTful address. A RESTful WMTS is accessed in QGIS by simply adding its address in the WMS setup in the URL field of the form. An example of this type of address for the case of an Austrian basemap is https://maps.wien.gv.at/basemap/1.0.0/WMTSCapabilities.xml.

Note

You can still find some old services called WMS-C. These services are quite similar to WMTS (i.e., same purpose but working a little bit differently). You can manage them the same as you do WMTS services. Just add ?tiled=true at the end of the url. See https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification for more information about this specification.

Lorsque vous lisez WMTS, vous pouvez également penser WMS-C.

Sélection des serveurs WMS/WMTS

La première fois que vous utilisez la fonctionnalité de services WMS dans QGIS, il n’y a aucun serveur défini.

Commencez par cliquer sur le bouton wms Ajoutez une couche WMS dans la barre d’outils ou via le menu Couche ‣ Ajoutez une couche WMS….

The dialog Add Layer(s) from a Server for adding layers from the WMS server appears. You can add some servers to play with by clicking the Add Default Servers button. This will add two WMS demo servers for you to use: the WMS servers of the DM Solutions Group and Lizardtech. To define a new WMS server in the Layers tab, select the New button. Then enter the parameters to connect to your desired WMS server, as listed in table_OGC_wms:

Nom Un nom pour cette connexion. Ce nom sera utilisé dans la liste déroulante des connexions aux serveurs afin que vous puissiez le distinguer des autres serveurs WMS.
URL URL du serveur fournissant les données. Cela doit être un nom d’hôte publique – le même format que si vous l’utilisiez pour ouvrir une connexion Telnet ou pinguer un hôte (ou dans un navigateur Internet).
Nom utilisateur Nom d’utilisateur pour accéder à un serveur WMS sécurisé. Ce paramètre est optionnel.
Mot de Passe Mot de passe pour une authentification basique à un serveur WMS. Ce paramètre est optionnel.
Ignorer l’adresse GetMap checkbox Ignorer l’adresse GetMap signalée : force l’utilisation de l’adresse précisée dans le champ URL ci-dessus.
Ignorer l’adresse GetFeatureInfo checkbox Ignorer l’adresse GetFeatureInfo signalée : force l’utilisation de l’adresse précisée dans le champ URL ci-dessus.

Table OGC 1 : Paramètres de connexion à un serveur WMS

Si vous devez configurer un serveur proxy pour pouvoir recevoir des services WMS à partir d’Internet, vous pouvez ajouter votre serveur proxy dans les options. Choisissez le menu Préférences ‣ Options et cliquez sur l’onglet Réseau. Vous pouvez alors ajouter votre configuration de proxy et l’activer en cochant la case checkbox Utiliser un proxy pour l’accès Internet. Assurez-vous que vous avez sélectionné le type de proxy correct dans la liste déroulante Type de proxy selectString.

Une fois qu’une nouvelle connexion à un serveur WMS a été créée, elle sera sauvegardée pour les futures sessions de QGIS.

Astuce

À propos des URL des serveurs WMS

Assurez-vous, lorsque vous entrez l’URL du serveur WMS, d’avoir uniquement l’URL de base. Par exemple, vous ne devez pas avoir de paramètres tels que request=GetCapabilities ou version=1.0.0 dans votre URL.

Avertissement

Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it’s advisable to save your credentials in a Authentication configuration instead (configurations tab). See Système d’authentification for more details.

Chargement des couches WMS/WMTS

Once you have successfully filled in your parameters, you can use the Connect button to retrieve the capabilities of the selected server. This includes the image encoding, layers, layer styles and projections. Since this is a network operation, the speed of the response depends on the quality of your network connection to the WMS server. While downloading data from the WMS server, the download progress is visualized in the lower left of the WMS dialog.

Votre écran devrait maintenant ressembler à la figure_OGC_add_wms, qui montre la réponse fournie par le serveur WMS du Portail Européen du Sol.

../../../_images/connection_wms.png

Fenêtre d’ajout d’un serveur WMS, avec indication des couches disponibles

Format d’image

La section Format d’image liste les formats qui sont gérés à la fois par le client et leur serveur. Choisissez en fonction de votre besoin de précision de l’image.

Astuce

Format d’image

Les serveurs WMS vous offriront typiquement le choix entre les formats d’image JPEG et PNG. Le JPEG est un format de compression avec perte alors que le PNG reproduit fidèlement les données raster brutes.

Utilisez le JPEG si vous vous attendez à ce que les données WMS soient de nature photographiques et/ou si vous acceptez une perte de qualité dans l’image. Ce compromis réduit généralement de cinq fois le temps de transfert des données par rapport au PNG.

Utilisez le PNG si vous voulez une représentation précise des données d’origine, et vous acceptez des temps de transfert des données plus longs.

Options

La zone Options de la fenêtre dispose d’un champ textuel où vous pouvez saisir le Nom de la couche WMS. Ce nom sera affiché dans la légende après le chargement de la couche.

Sous le nom de la couche vous pouvez définir la Taille de tuile (par exemple 256x256), si vous souhaitez diviser la requête WMS en plusieurs requêtes.

Limite d’entité de GetFeatureInfo permet de définir quelles entités requêter sur le serveur.

If you select a WMS from the list, a field with the default projection provided by the mapserver appears. If the Change… button is active, you can click on it and change the default projection of the WMS to another CRS provided by the WMS server.

Enfin, vous pouvez activer checkbox Utiliser la légende WMS contextuelle si le serveur WMS prend en charge cette fonctionnalité. Sera alors affichée une légende adaptée aux éléments présents dans l’extension courante de la carte, les éléments de légende qui correspondent à des éléments non affichés ne seront pas inclus dans la légende.

Ordre des couches

L’onglet Ordre des couches liste les couches sélectionnées disponibles pour le serveur WMS actuellement connecté. Certaines couches seront peut-être dépliables, cela signifie que différents styles sont disponibles pour cette couche.

Vous pouvez sélectionner plusieurs couches à la fois, mais seulement un style d’image par couche. Lorsque plusieurs couches sont sélectionnées, celles-ci seront combinées par le serveur WMS et transmises à QGIS en une seule fois.

Astuce

Ordonner les couches WMS

Les couches WMS sont superposées par le serveur dans l’ordre listé dans la section Couches, du haut vers le bas. Si vous souhaitez changer cet ordre, utilisez l’onglet Ordre des couches.

Transparence

Dans cette version de QGIS, le paramètre de Transparence globale de la fenêtre de Propriétés de la couche est codé en dur pour être toujours activé, si disponible.

Astuce

Transparence des couches WMS

La disponibilité de la transparence de l’image WMS dépend du format d’image utilisé : les formats PNG et GIF gèrent la transparence, tandis que le format JPEG ne le gère pas.

Système de Coordonnées de Référence

Un Système de Coordonnées de Référence de (SCR) est la terminologie de l’OGC pour désigner une projection QGIS.

Chaque couche WMS peut être représentée dans plusieurs projections (ou SCR), en fonction des possibilités du serveur WMS.

To choose a CRS, select Change… and a dialog similar to Fenêtre de SCR personnalisé will appear. The main difference with the WMS version of the dialog is that only those CRSs supported by the WMS server will be shown.

Jeux de Tuiles

Lorsque vous utilisez des services WMTS (WMS en cache) tel que:

https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?\
  service=WMTS&request=GetCapabilities

Vous pouvez naviguer dans l’onglet Jeux de tuiles fourni par le serveur. Cette table liste d’autres informations telles que la taille des tuiles, les formats et les SCR gérés. En combinaison avec cette fonctionnalité, vous pouvez utiliser la jauge d’échelle de tuile en sélectionnant Vue‣ Panneaux (sous KDE) ou Paramètres‣ Panneaux et en choisissant Échelle de tuile. Cela vous donne les échelles disponibles sur le serveur de tuile avec une jauge de sélection.

Utiliser l’outil Identifier

Une fois que vous avez ajouté un serveur WMS et si une couche du serveur WMS est interrogeable, vous pouvez utiliser l’outil identify Identifier pour sélectionner un pixel sur la carte. Une requête est envoyée au serveur WMS pour chaque sélection effectuée. Les résultats de la requête sont renvoyés au format texte. Le formatage de ce texte dépend du serveur WMS utilisé.

Sélection du format

Si le serveur gère plusieurs formats de sortie, une liste déroulante des format gérés est automatiquement ajoutée à la boîte de dialogue des résultats et le format sélectionné peut être stocké dans le fichier de projet pour la couche.

Support du format GML

L’outil d”identification identify gère les réponses des serveurs WMS (GetFeatureInfo) au format GML (intitulé Entité dans l’interface graphique de QGIS). Si le format « Entité est géré par le serveur et qu’il est sélectionné, les résultats de l’outil d’identification sont des entités vecteur, comme s’il s’agissait d’une couche vecteur normale. Lorsqu’une seule entité est sélectionnée dans l’arbre, elle est mise en valeur dans la carte et elle peut être copié dans le presse-papier et copiée dans une autre couche vecteur. Consultez l’exemple de gestion de GetFeatureInfor au format GML pour UMN Mapserver ci-dessous.

# in layer METADATA add which fields should be included and define geometry (example):

"gml_include_items"   "all"
"ows_geometries"      "mygeom"
"ows_mygeom_type"     "polygon"

# Then there are two possibilities/formats available, see a) and b):

# a) basic (output is generated by Mapserver and does not contain XSD)
# in WEB METADATA define formats (example):
"wms_getfeatureinfo_formatlist" "application/vnd.ogc.gml,text/html"

# b) using OGR (output is generated by OGR, it is send as multipart and contains XSD)
# in MAP define OUTPUTFORMAT (example):
OUTPUTFORMAT
    NAME "OGRGML"
    MIMETYPE "ogr/gml"
    DRIVER "OGR/GML"
    FORMATOPTION "FORM=multipart"
END

# in WEB METADATA define formats (example):
"wms_getfeatureinfo_formatlist" "OGRGML,text/html"

Visualiser les propriétés

Une fois que vous avez ajouté un serveur WMS, vous pouvez voir ses propriétés en faisant un clic-droit sur la couche dans la légende et en sélectionnant Propriétés.

Onglet Métadonnées

L’onglet Métadonnées affiche la richesse des informations du serveur WMS, généralement collectées à partir de la requête capabilities renvoyée par le serveur. Beaucoup de définitions peuvent être obtenues par la lecture des normes WMS (voir OPEN-GEOSPATIAL-CONSORTIUM Bibliographie), mais en voici quelques-unes :

  • Propriétés du serveur
    • Version du WMS — La version de WMS gérée par le serveur.
    • Formats d’image — La liste des types MIME que le serveur peut renvoyer lors qu’il dessine la carte. QGIS gère tous les formats pour lesquelles la bibliothèque Qt en sous-couche a été compilée, qui sont à minima les types image/png et image/jpeg.
    • Formats de l’outil Identitier — La liste des types MIME auxquels le serveur peut répondre quand vous utilisez l’outil Identifier. Pour l’instant QGIS gère le type text-plain.
  • Propriétés de la couche
    • Selectionnée — Si la couche a été sélectionnée quand le serveur correspondant a été ajouté au projet.
    • Visible — Si cette couche a été sélectionnée comme visible dans la légende (pas encore utilisé dans cette version de QGIS).
    • Peut identifier — Si cette couche retournera des résultats quand l’outil Identifier est utilisé sur celle-ci.
    • Peut être transparente — Si cette couche peut être rendue avec une transparence. Cette version de QGIS utilisera toujours la transparence si cette option est à Oui et que le format d’image gère la transparence.
    • Peut zoomer — Si on peut zoomer sur cette couche avec le serveur. Cette version de QGIS suppose que toutes les couches WMS ont ce paramètre défini à Oui. Les couches déficientes seront peut-être rendues d’une manière étrange.
    • Décompte des cascades — Les serveurs WMS peuvent agir comme un proxy à d’autres serveurs WMS pour obtenir des données pour une couche. Cette entrée affiche le nombre de fois où la requête pour cette couche est redirigée vers un autre serveur WMS pour obtenir un résultat.
    • Largeur fixe, hauteur fixe — Si les pixels sources d’une couche ont des dimensions fixes. Cette version de QGIS suppose que toutes les couches WMS ont ce paramètre non fixé. Les couches déficientes seront peut-être rendues d’une manière étrange.
    • Emprise en WGS 84 — La limite du contour de la couche, en coordonnées WGS 84. Certains serveurs WMS ne définissent pas ceci correctement (par exemple, des coordonnées UTM sont utilisées à la place). Si cela est le cas, alors la vue initiale sera rendue avec une vue très étendue. Le webmaster du WMS doit être informé de cette erreur sur ce paramètre qui est certainement connu en tant qu’éléments XML du WMS LatLonBoundingBox, EX_GeographicBoundingBox ou the CRS:84 BoundingBox.
    • Disponibilité des SCR — Les projections que l’on peut utiliser via le serveur WMS. Elles sont listées dans le format natif du WMS.
    • Disponibilité des styles — Les styles d’images que le serveur WMS peut utiliser pour le rendu de cette couche.

Show WMS legend graphic in table of contents and layout

The QGIS WMS data provider is able to display a legend graphic in the table of contents” layer list and in the print layout. The WMS legend will be shown only if the WMS server has GetLegendGraphic capability and the layer has getCapability url specified, so you additionally have to select a styling for the layer.

Si une légende graphique est disponible, elle est affichée sous la couche. Elle est de faible taille et vous devez cliquer dessus pour l’afficher complètement (dû à une limite d’architecture de QgsLegendInterface). Cliquer sur la légende de la couche ouvrira une fenêtre avec la légende en pleine résolution.

In the print layout, the legend will be integrated at it’s original (downloaded) dimension. Resolution of the legend graphic can be set in the item properties under Legend ‣ WMS LegendGraphic to match your printing requirements.

La légende affichera une information contextuelle basée sur l’échelle courante. La légende WMS sera affichée uniquement si le serveur WMS dispose de la fonction GetLegendGraphic et si la couche dispose d’une url getCapability pour pouvoir choisir son style.

Limitations du client WMS

Toutes les fonctionnalités d’un client WMS n’ont pas été intégrées dans cette version de QGIS. Les exceptions les plus notables sont présentées ci-après.

Éditer la configuration d’une couche WMS

Une fois que vous avez complété la procédure d” wms Ajout de couches WMS, il n’y aucun moyen de modifier la configuration. Une solution de contournement consiste à supprimer la couche et recommencer.

Serveurs WMS nécessitant une authentification

Actuellement les serveurs WMS publics et sécurisés sont gérés. Les serveurs sécurisés sont accessibles via authentification publique. Vous pouvez ajouter ces informations d’authentification (optionnelles) au moment de l’ajout d’un serveur WMS. Voir la section Sélection des serveurs WMS/WMTS pour les détails.

Astuce

Accéder à des couches OGC sécurisées

If you need to access secured layers with secured methods other than basic authentication, you can use InteProxy as a transparent proxy, which does support several authentication methods. More information can be found in the InteProxy manual at https://inteproxy.wald.intevation.org.

Astuce

QGIS WMS Mapserver

Depuis la version 1.7.0, QGIS possède sa propre implémentation d’un Mapserver WMS 1.3.0. Référez vous à QGIS comme serveur de données OGC pour en savoir plus.

Client WCS

wcs Un service Web Coverage (WCS) fournit un accès à des données raster sous une forme qui permet le rendu côté client, comme une entrée vers des modèles scientifiques. WCS peut être comparé à WFS et WMS. Comme ces services, WCS permet aux clients de choisir des portions de données issues du serveur basées sur des contraintes spatiales et d’autres critères de recherche.

QGIS dispose d’un fournisseur WCS natif qui gère les versions 1.0 et 1.1 (qui sont significativement différentes) mais la version 1.0 est privilégiée car la version 1.1 pose beaucoup de problèmes (chaque serveur l’implémente de manière différente avec beaucoup de particularités).

Le fournisseur WCS natif gère l’ensemble des requêtes réseau et utilise les paramètres réseau de QGIS (particulièrement le proxy). Il est également possible d’utiliser un mode cache (“toujours en cache”, “préférer le cache”, “préférer le réseau”, “toujours le réseau”) et le fournisseur gère également la sélection dans le temps si un domaine de temps est fourni par le serveur.

Avertissement

Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it’s advisable to save your credentials in a Authentication configuration instead (configurations tab). See Système d’authentification for more details.

Client WFS et WFS-T

Dans QGIS, une couche WFS se comporte à peu près comme n’importe quelle autre couche vecteur. Vous pouvez identifier et sélectionner des objets et voir la table attributaire. Depuis QGIS 1.6, l’édition (WFS-T) est prise en charge si le serveur le propose.

Dans l’ensemble, l’ajout d’une couche WFS suit une procédure très similaire à celle des couches WMS. La différence est qu’il n’y a pas de serveur défini par défaut, nous allons donc devoir en ajouter un.

Charger une couche WFS

As an example, we use the Gateway Geomatics WFS server and display a layer. https://demo.gatewaygeomatics.com/cgi-bin/wfs_gateway?REQUEST=GetCapabilities&VERSION=1.0.0&SERVICE=WFS

To be able to load a WFS Layer we create a connection to the WFS server first.

  1. Open the Data Source Manager dialog by pressing the dataSourceManager Open Data Source Manager button

  2. Enable the wfs WFS tab

  3. Click on New… to open the Create a New WFS Connection dialog

  4. Enter Gateway Geomatics as name

  5. Enter the URL (see above)

    ../../../_images/add_connection_wfs.png

    Creating a connection to a WFS server

  6. In the WFS settings dialog, you can:

    • Indicate the WFS version of the server. If unknown, press the Detect button to automatically retrieve it.
    • Define the maximum number of features retrieved in a single GetFetFeature request. If empty, no limit is set.
    • Invert axis orientation.
    • And depending on the WFS version:
      • Force to Ignore axis orientation (WFS 1.1/WFS 2.0)
      • Enable feature paging and specify the maximum number of features to retrieve with Page size. If no limit is defined, then the server default is applied.

    Avertissement

    Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it’s advisable to save your credentials in an Authentication configuration instead (Configurations tab). See Système d’authentification for more details.

  7. Press OK to create the connection.

Il est à noter que tous paramètres de proxy que vous auriez renseignés dans vos options sont également reconnus.

Now we are ready to load WFS layers from the above connection.

  1. Choose “Gateway Geomatics” from the Server Connections selectString drop-down list.
  2. Click Connect
  3. Select the Parks layer in the list
  4. You can also choose whether to:
    • unchecked Use title for layer name, showing the layer’s title as defined on the server in the Layers panel instead of its Name
    • checkbox Only request features overlapping the view extent
    • unchecked Change the layer’s CRS
    • or Build query to specify particular features to retrieve, by either using the corresponding button or double-clicking the target layer.
  5. Click Add to add the layer to the map.
../../../_images/connection_wfs.png

Ajout d’une couche WFS

You’ll notice the download progress is visualized in the lower left of the QGIS main window. Once the layer is loaded, you can identify and select a couple of features and view the attribute table.

Note

QGIS supports different versions of the WFS protocol, with background download and progressive rendering, on-disk caching of downloaded features and version autodetection.

Astuce

Trouver des serveurs WFS

Vous trouverez d’autres serveurs WFS en cherchant dans votre moteur de recherche favori. Il existe de nombreuses listes d’URL publiques, plus ou moins à jour.