10.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.
10.2.1. Follow Along: Chargement d’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.org
et 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.
Trouvez la couche antarctica_country_border. Vous pouvez utiliser la boîte Filtre en haut.
Cliquez sur la couche pour la sélectionner :
Trouvez et sélectionnez également la couche south_poles_wfs. Vous devrez peut-être maintenir 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.
Sélectionnez la couche south_poles_wfs et ouvrez sa table d’attributs. Vous devriez voir ceci :
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. 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.
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.
Trouvez et double-cliquez sur la couche countries (excluant l’Antarctique). Le nom de la couche est
country_borders_excluding_antarctica
. Vous pouvez également sélectionner la couche et appuyer sur le bouton Construire la requête au bas de la boîte de dialogue :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
Countryeng
estSouth Africa
sera 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. 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.
10.2.4. What’s Next?
Dans la prochaine leçon, vous verrez comment utiliser QGIS pour fournir des services OGC.