Important

La traduction est le fruit d’un effort communautaire auquel vous pouvez vous joindre. Cette page est actuellement traduite à 87.50%.

10.2. Leçon : 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.

10.2.1. ★☆☆ Pas à pas : Charger une couche WFS

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

  2. Cliquez sur le bouton dataSourceManager Ouvrir le gestionnaire de source de données.

  3. Activez l’onglet wfs WFS / OGC API - Features.

  4. Cliquez sur le bouton Nouveau.

  5. Dans le dialogue qui apparaît, saisir comme Nom : nsidc.org et comme URL : https://nsidc.org/cgi-bin/atlas_south?version=1.1.0.

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

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

    ../../../_images/wfs_connection_layers.png
  8. Décochez l’option Ne demander que les entités qui sont dans l’étendue de la vue courante en dessous de la liste des couches, étant donné que le canevas de votre carte actuelle peut ne pas couvrir notre zone d’intérêt : l’Antarctique.

  9. Find the layer antarctica_country_border. You can use the Filter box at the top.

  10. Cliquez sur la couche pour la sélectionner :

  11. Find and select also the layer south_poles_wfs. You might need to hold Ctrl.

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

    Le chargement des couches peut prendre un certain temps. Lorsqu’elles seront chargées, elles apparaîtront sur la carte, montrant les contours de l’Antarctique et quelques points au-delà.

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

    Quelle est la différence avec une couche WMS ?

  13. Sélectionnez l’une des couches et vous remarquerez que les outils de sélection d’éléments et de table d’attributs sont activés. Ce sont des couches vecteur.

  14. Select the south_poles_wfs layer and open its attribute table. You should see this:

    ../../../_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

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.

10.2.2. ★★☆ Pas à pas : Requêter 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.

For example, on the WFS server we’re currently using, there is a layer called countries (excluding Antarctica). Let’s say that we want to know where South Africa is relative to the south_poles_wfs layer (and perhaps also the antarctica_country_border layer) that’s already been loaded.

There are two ways to do this. You can load the whole countries ... layer, and then build a query as usual once it’s loaded. However, transmitting the data for all the countries in the world and then only using the data for South Africa seems a bit wasteful of bandwidth. Depending on your connection, this dataset can take several minutes to load.

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

  1. Activez l’onglet WFS / OGC API Features dans la boîte de dialogue Gestionnaire de source de donnees.

  2. Connectez-vous au serveur que nous avons utilisé précédemment et vous devriez voir la liste des couches disponibles.

  3. Find and double-click the countries (excluding Antarctica) layer. The layer name is country_borders_excluding_antarctica. You can also select the layer and press Build query button at the bottom of the dialog:

    ../../../_images/select_country_filter.png
  4. Dans la boîte de dialogue qui s’affiche, saisissez la requête suivante : SELECT * FROM country_borders_excluding_antarctica WHERE "Countryeng" = 'South Africa' dans la zone SQL.

    ../../../_images/country_sa_builder.png
  5. Pressez OK.

  6. L’expression utilisée apparaîtra comme la valeur Sql de la couche cible :

    ../../../_images/country_filter_enabled.png
  7. Cliquez sur Ajouter avec la couche sélectionnée comme ci-dessus. Seul le pays dont la valeur Countryeng est South Africa sera chargé à partir de cette couche :

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

    Avez-vous remarqué l’icône indicatorFilter à côté de la couche country_borders_excluding_antarctica ? Elle indique que la couche chargée est filtrée et n’affiche pas toutes ses entités dans le projet.

  8. 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 !

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.

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

10.2.4. La suite ?

Dans la prochaine leçon, vous verrez comment utiliser QGIS pour fournir des services OGC.