.

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.

Un nombre croissant de spécifications décrivant les modèles de données géographiques sont développées par l’OGC pour servir des besoins spécifiques dans des situations nécessitant une interopérabilité et des technologies géospatiales, dont les SIG. Des informations supplémentaires peuvent être trouvées sur le site http://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, il s’agira par exemple des formats JPEG ou 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 web pleinement déployé. De cette façon, vous pouvez copier les adresses générées par QGIS et les copier 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 serveurs WMS existants ayant chacun leur 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.

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 et 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:

Figure WMTS 1:

../../../_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) In order to access a WMTS KVP service, a QGIS user must open the WMS/WMTS interface and add the following string to the URL of the WMTS tile service:

"?SERVICE=WMTS&REQUEST=GetCapabilities"

Un exemple de ce type d’adresse est

http://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.

  1. 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

Ce format aide à reconnaître les adresses RESTful. Un service WMTS RESTful est accédé par QGIS en ajoutant simplement cette adresse dans la configuration de l’URL WMS. Voici un exemple de ce type d’adresse pour les cartes de l’Autriche: http://maps.wien.gv.at/basemap/1.0.0/WMTSCapabilities.xml.

Note

Vous pouvez encore trouver de vieux services nommés WMS-C. Ces services sont proches du WMTS (même objectif mais fonctionnement différent). Vous pouvez les gérer de la même manière que les services WMTS. Ajoutez seulement ?tiled=true à la fin de l’url. Consultez http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification pour plus d’informations sur cette spécification.

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 mActionAddWmsLayer Ajoutez une couche WMS dans la barre d’outils ou via le menu Couche ‣ Ajoutez une couche WMS....

La fenêtre Ajouter des couches depuis un serveur pour ajouter des couches d’un serveur WMS s’ouvre. Vous pouvez ajouter des serveurs pour tester en cliquant le bouton [Ajouter les serveurs par défaut]. Cela ajoutera deux serveurs WMS de démonstration, celui de DM Solutions Group et celui de Lizardtech. Pour définir un nouveau serveur WMS, dans l’onglet Couches, cliquez sur le bouton [Nouveau] puis entrez les paramètres de connexion du serveur WMS désiré, comme listé dans le tableau table_OGC_1:

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.

Chargement des couches WMS/WMTS

Une fois que vous avez remplis les paramètres, vous pouvez utiliser le bouton [Connect] pour récupérer les propriétés du serveur sélectionné. Cela inclut l’encodage des images, les couches, les styles de couches et les projections. Étant donné qu’il s’agit d’une opération réseau, la vitesse de réponse dépend de la qualité de la connexion réseau au serveur WMS. Lorsque les données sont téléchargées depuis le serveur WMS, la progression du téléchargement est visible dans le coin inférieur gauche de la boîte de dialogue WMS.

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

Figure OGR 1:

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

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

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.

Si vous sélectionnez un WMS depuis la liste, la projection par défaut, fournie par mapserver, apparaît. Si le bouton [Modifications...] est actif, vous pouvez cliquer dessus pour changer cette projection par défaut pour une autre, fournie par le serveur WMS.

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.

Pour choisir un SCR, cliquez sur le bouton [Modifications...] et une fenêtre similaire à la figure de la section Utiliser les projections apparaitra. La principale différence est qu’ici seules les projections gérées par le serveur seront listées.

Jeux de Tuiles

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

http://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 Paramètres ‣ Panneaux (Sous KDE et Windows) ou Vue ‣ Panneaux (Gnome et MacOSX) et en choisissante Echelle de tuile. Cela vous donne les échelles disponibles sur le serveur de tuile avec une juage 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 mActionIdentify 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 mActionIdentify 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.

Affiche la légende WMS dans la légende et dans le composeur

Le fournisseur de données WMS de QGIS est capable d’afficher un graphique de légende dans la liste des couches ainsi que dans le composeur de cartes. La légende WMS sera affichée uniquement si le serveur dipose de l’option GetLegendGraphic et si la couche dispose de l’url getCapability pour que vous puissiez choisir un style popur cette couche.

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.

Dans le composeur de cartes, la légende sera intégrée à sa dimension originale (téléchargement). La résolution de la légende graphique peut être paramétrée dans les propriétés de l’objet sous Légende -> Graphique de légende WMS pour correspondre à vos besoins d’impression.

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’ mActionAddWmsLayer 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

Si vous avez besoin d’accéder à des couches sécurisées avec des méthodes sécurisées autres que la simple authentification, vous pouvez utiliser InteProxy comme proxy transparent, qui gère plusieurs méthodes d’authentification. Vous pouvez trouver plus d’informations dans le manuel d’InteProxy que vous trouverez sur le site http://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 contraîntes spatiales et d’autres critères de recherche.

QGIS dispose d’un fournisseur WCS natif qui gère les version 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.

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

Pour notre exemple nous utiliserons le serveur WFS de DM Solutions et afficherons une couche. L’URL est : http://www2.dmsolutions.ca/cgi-bin/mswfs_gmap

  1. Cliquez sur le bouton wfs Ajouter une couche WFS de la barre d’outils Couches. La fenêtre Ajouter une couche WFS d’un serveur apparaît.

  2. Cliquez sur [Nouveau].

  3. Entrez ‘DM Solutions’ pour le nom.

  4. Entrez l’URL (voir ci-dessus).

  5. Cliquez sur le bouton [OK].

  6. Choisisez ‘Solutions DM’ depuis la liste déroulante selectstring Connexions Serveur.

  7. Cliquez sur [Connexion].

  8. Attendez que la liste des couches soit complète.

  9. Cliquez sur la couche Parks dans la liste.

  10. Cliquez sur [Appliquer] pour ajouter la couche à la carte.

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

Figure OGR 3:

../../../_images/connection_wfs.png

Ajout d’une couche WFS nix

Vous remarquerez que la progression du téléchargement est affichée en bas à gauche de la fenêtre principale de QGIS. Une fois que la couche est chargée, vous pouvez identifier et sélectionner une ou deux provinces et visualiser la table d’attributs.

Seul le WFS 1.0.0 est géré. Pour le moment il n’y a pas eu de test pour les autres versions des services WFS des serveurs WFS. Si vous rencontrez des problèmes avec d’autres serveurs WFS, n’hésitez pas à contacter l’équipe de développement. Référez-vous à la section Aide et support pour plus d’informations sur les listes de diffusions.

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.