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
Ouvrez une nouvelle carte. C’est à des fins de démo et ça ne sera pas sauvegardé.
Cliquez sur le bouton
Ouvrir le gestionnaire de source de données.Cliquez sur le bouton Nouveau.
Dans le dialogue qui apparaît, saisir comme Nom :
nsidc.orget comme URL :https://nsidc.org/cgi-bin/atlas_south?version=1.1.0.
Cliquez sur OK, et la nouvelle connexion apparaîtra dans votre Serveur de connexions.
Cliquez sur Connecter. Une liste de couches disponibles apparaîtra.
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.
Find the layer
antarctica_country_border. You can use the Filter box at the top.Cliquez sur la couche pour la sélectionner :
Find and select also the layer
south_poles_wfs. You might need to hold Ctrl.
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à.
Quelle est la différence avec une couche WMS ?
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.
Select the
south_poles_wfslayer and open its attribute table. You should see this:
Comme les points ont des attributs, nous sommes capable de les étiqueter, tout comme de changer leur symbologie. Voici un exemple :
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.
Activez l’onglet WFS / OGC API Features dans la boîte de dialogue Gestionnaire de source de donnees.
Connectez-vous au serveur que nous avons utilisé précédemment et vous devriez voir la liste des couches disponibles.
Find and double-click the
countries (excluding Antarctica)layer. The layer name iscountry_borders_excluding_antarctica. You can also select the layer and press Build query button at the bottom of the dialog:
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.
Pressez OK.
L’expression utilisée apparaîtra comme la valeur Sql de la couche cible :
Cliquez sur Ajouter avec la couche sélectionnée comme ci-dessus. Seul le pays dont la valeur
CountryengestSouth Africasera chargé à partir de cette couche :
Avez-vous remarqué l’icône
à 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.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.