Outdated version of the documentation. Find the latest one here.

11.2. Lesson: Web Feature Services

Un Web Feature Service (WFS) fournit à ses utilisateurs des données SIG dans des formats qui peuvent être directement chargés dans QGIS. À la différence d’un WMS, qui vous fournit seulement une carte que vous ne pouvez pas modifier, un WFS vous donne accès aux entités elles-mêmes.

Objectif de cette leçon : Utiliser un WFS et comprendre en quoi il est différent d’un WMS.

11.2.1. basic Follow Along: Chargement d’une couche WFS

  • Ouvrez une nouvelle carte. C’est à des fins de démo et ça ne sera pas sauvegardé.

  • Assurez-vous que la reprojection “à la volée” est désactivée.

  • Cliquez sur le bouton Ajouter une nouvelle couche WFS :

    wfs

  • Cliquez sur le bouton Nouveau.

  • Dans la boîte de dialogue qui apparaît, entrez le Nom nsidc.org et l’URL http://nsidc.org/cgi-bin/atlas_south?version=1.1.0.

    ../../../_images/new_wfs_connection.png
  • Cliquez sur OK, et la nouvelle connexion apparaîtra dans votre Serveur de connexions.

  • Cliquez sur Connecter. Une liste de couches disponibles apparaîtra.

    ../../../_images/wfs_connection_layers.png
  • Trouvez la couche south_poles_wfs.

  • Cliquez sur la couche pour la sélectionner :

    ../../../_images/south_poles_wfs.png
  • Cliquez sur Ajouter.

Cela peut prendre un certain temps pour charger la couche. Quand elle est chargée, elle apparaîtra dans la carte. Ici, elle contient les contours de l’Antarctique (disponible sur le même serveur, et sous le nom de antarctica_country_border) :

../../../_images/antarctica_border.png

Qu’est-ce que que cela change par rapport à avoir une couche WMS ? Cela deviendra évidement quand vous verrez les attributs des couches.

  • Ouvrez la table attributaire de la couche south_poles_wfs. Vous devriez voir cela :

../../../_images/poles_attribute_table.png

Comme les points ont des attributs, nous sommes capable de les étiqueter, tout comme de changer leur symbologie. Voici un exemple :

../../../_images/labelling_example.png
  • Ajoutez des étiquettes à votre couche pour profiter des données attributaires dans cette couche.

11.2.1.1. Différences avec des couches WMS

Un service de WFS retourne la couche en elle-même et pas uniquement une carte rendue avec. Cela vous donne un accès direct à la donnée et signifie que vous pouvez changer sa symbologie et lancer des fonctions d’analyse dessus. Néanmoins, cela se fait en transmettant beaucoup plus de données. Cela se révélera particulièrement inadapté si les couches que vous chargez ont des formes complexes, un grand nombre d’attributs ou de nombreuses entités ou encore si vous chargez un grand nombre de couches. Les couches WFS prennent un temps non négligeable à se charger à cause de tout cela.

11.2.2. moderate Follow Along: Interroger une couche WFS

Bien que cela soit possible d’interroger une couche WFS après l’avoir chargée, c’est souvent plus efficace de l’interroger avant de la charger. De cette façon vous n’interrogez que les entités que vous souhaitez, ce qui signifie que vous utilisez moins de bande passante.

Par exemple, sur le serveur WFS que nous avons récemment utilisé, il y a une couche appelée countries (excluding Antarctica). Supposons que nous voulons savoir où se trouve l’Afrique du Sud par rapport à la couche south_poles_wfs (et peut-être aussi la couche antarctica_country_border) qui a déjà été chargée.

Il y a deux manières de le faire. Vous pouvez charger la couche countries ... entièrement, et faire une requête comme d’habitude une fois la couche chargée. Cependant, la transmission des données pour tous les pays mondiaux et n’utiliser uniquement que les données pour l’Afrique du Sud semble être un peu du gaspillage de bande passante. En fonction de votre connexion, ce jeu de données peut prendre plusieurs minutes à se charger.

La manière alternative est de faire une requête pour filter avant même de charger la couche du serveur.

  • Dans la fenêtre Ajouter une couche WFS ..., connectez-vous au serveur que vous avez utilisé précédemment et vous devriez voir la liste des couches disponibles.

  • Double-cliquez à côté de la couche countries ... dans le champ Filter, ou cliquez sur Construire une requête :

    ../../../_images/select_country_filter.png
  • Dans la fenêtre qui s’ouvre, saisissez la requête "Countryeng" = 'South Africa':

    ../../../_images/country_sa_builder.png
  • Elle apparaîtra dans le champ Filter :

    ../../../_images/country_filter_enabled.png
  • Cliquez sur Ajouter avec la couche countries de sélectionnée comme ci-dessus. Seul le pays avec la valeur du champ Countryeng définie comme South Africa se chargera depuis cette couche :

    ../../../_images/antarctica_sa.png

Vous n’avez pas à le faire, mais si vous avez testé les deux méthodes, vous remarquerez que cette dernière est beaucoup plus rapide que le chargement complet des pays avant de les filtrer !

11.2.2.1. Notes sur la disponibilité des WFS

Il est rare de trouver un WFS hébergeant les entités dont vous avez besoin, surtout si votre besoin est très spécifique. La raison pour laquelle un WFS est relativement rare est à cause des grandes quantités de données qui doivent être transmises pour décrire toute une entité. Il n’est donc pas très rentable d’héberger un WFS plutôt qu’un WMS, qui ne transmet que des images.

Le type le plus commun de WFS que vous rencontrerez sera probablement sur un réseau local ou même sur votre propre ordinateur, plutôt que sur internet.

11.2.3. In Conclusion

Les couches WFS sont préférables aux couches WMS si vous avez besoin d’un accès direct aux attributs et aux géométries de ces couches. Cependant, en considérant le volume de données qui ont besoin d’être téléchargées (ce qui mène à des problèmes de rapidité et aussi au manque de serveurs WFS publics facilement accessibles) ce n’est pas toujours possible d’utiliser un WFS à la place d’un WMS.

11.2.4. What’s Next?

Dans la prochaine leçon, vous verrez comment utiliser QGIS comme une interface pour le célèbre SIG GRASS.