Table des matières

Web Feature Service (WFS)

Description

Le « Web Feature Service » (WFS), est un standard OGC de Service Web qui définit une interface d’interopérabilité technique, dédiée à la publication d’objets géographiques (c'est-à-dire des données vecteur) ainsi que leur structure.

L’interface WFS décrit des opérations permettant en premier lieu le téléchargement des entités de données géographiques stockées dans des bases de données. Ces données sont exposées a minima sous forme de flux standard GML (Geographic Markup Language). Des opérations supplémentaires sont définies par WFS permettant la manipulation des données vecteur (création, suppression et mise à jour).

Le standard définit un protocole d’interopérabilité à plusieurs niveaux d'opérations :

Le standard WFS ne fait aucune supposition quant à l’architecture technique sur laquelle repose le service. En particulier, aucune exigence ne concerne la manière dont le stockage des données gérées par le service doit être réalisé, ni la nature des applications exploitant le service. Cela en fait un standard pouvant répondre à de multiples usages et types d’architectures. Un service WFS peut être utilisé par des clients variés (clients lourds, clients légers, serveurs d’applications, d’autres services web notamment) et peut exploiter des données stockées et structurées de manières très diverses (fichiers, bases de données centralisées voire distribuées).

La suite du document est consacrée à la description d’un service WFS relatif à la version 1.1, la plus implémentée actuellement. La version 2.0 (aussi norme ISO 19142 depuis fin 2010) n’est pour le moment que peu implémentée ; elle est cependant la version exigée par INSPIRE et fera donc l’objet d’une prochaine fiche.

Fonctionnement

Les types d'usages du WFS

Un WFS peut être implémenté à trois niveaux: soit “basique”, soit “XLink”, soit “transactionnel”.

Encodage des requêtes

WFS 1.1 décrit trois formes d’encodage des requêtes, à savoir :

Dans la suite du document seul l’encodage HTTP GET / KVP est présenté, étant le plus communément implémenté.

Paramètres des requêtes HTTP GET / KVP

Les noms des paramètres ne sont pas sensibles à la casse, contrairement aux valeurs (GetCapabilities par exemple).

Paramètres communs :

Les opérations du WFS

Les opérations offertes par un service WFS sont :

GetCapabilities (obligatoire)

GetCapabilities (Basique) : Cette opération permet d’interroger le serveur afin d’obtenir les informations suivantes (informations présentées dans un document XML communément appelé Capabilities) :

Paramètres obligatoires :

Paramètres optionnels :

Exemple de requête:
http://nsidc.org/cgi-bin/atlas_north?service=WFS&request=GetCapabilities&version=1.1.0
La réponse est un fichier XML.

DescribeFeatureType (obligatoire)

DescribeFeatureType (Basique) : Cette opération fournit une description de la structure de n’importe quel type d'entité géographique disponible sur le serveur dans un schéma XML (un schéma GML3 pour être plus précis).
Paramètres obligatoires :

Paramètres optionnels :

GetFeature (obligatoire)

GetFeature (Basique) : Permet d’obtenir les instances des objets géographiques. L’application cliente peut spécifier les propriétés à obtenir et filtrer les objets selon des critères spatiaux ou alphanumériques. Le format de sortie par défaut est GML, mais d’autres formats peuvent être supportés (comme l’encodage de la collection d’objets en Shapefile). La conversion automatique des systèmes de coordonnées peut également être supportée (reprojections).

Paramètres obligatoires :

Paramètres optionnels :

Paramètres optionnels spécifiques à la résolution des liens XLink :

GetFeatureWithLock (optionnel)

GetFeatureWithLock (WFS-T) : Cette opération est analogue à GetFeature mais verrouille en même temps les instances des objets demandées (dans un but de modification / mise à jour de ces dernières par exemple). En plus des paramètres obligatoires et optionnels partagés avec l’opération GetFeature, cette opération dispose du paramètre optionnel suivant :

La valeur du paramètre REQUEST doit être GetFeatureWithLock.

GetGmlObject (optionnel)

GetGmlObject (XLink) – Cette opération permet d’obtenir un objet géographique (ou une propriété d’un objet) par son identifiant XML.

Paramètres obligatoires :

Paramètre optionnel :

LockFeature (optionnel)

LockFeature (WFS-T) - Cette opération permet le verrouillage d’une ou plusieurs entités pendant la durée d'une transaction, permettant de gérer les accès concurrents.

Paramètres obligatoires :

Paramètres optionnels :

vBBOX : rectangle englobant limitant spatialement la requête (usage mutuellement exclusif avec FEATUREID et FILTER)

Transaction (optionnel)

Transaction (WFS-T) - Cette opération permet de créer, mettre à jour et supprimer des entités géographiques.

Paramètres obligatoires :

Paramètres optionnels:

Remarque : Les trois types de transaction possibles avec WFS sont INSERT (création), UPDATE (mise à jour) et DELETE (suppression). Cependant seule la suppression est considérée pertinente avec le binding HTTP GET / KVP. En effet l’envoi de données vecteur encodées en KVP n’est pas pertinent.

Cas d'usage classique du WFS

À titre d’exemple et pour illustrer l’utilisation de ces opérations, voici une séquence typique d’opérations réalisée par une application pour modifier le contenu d’une base de données accessible via un service WFS :

  1. Prise de connaissance des métadonnées et des capacités du service à l’aide de l’opération GetCapabilities. Cette opération permet à l’application cliente :
  1. Prise de connaissance du modèle de données de la classe d’objets à mettre à jour grâce à l’opération DescribeFeatureType,
  2. Prise de connaissance du nombre d’objets présents dans l’emprise géographique à mettre à jour puis téléchargement des objets présents dans cette zone à l’aide de l’opération GetFeature,
  3. Recherche et verrouillage des objets présentant des valeurs d’attributs particulières (afin de les modifier par la suite en évitant des conflits avec des modifications faites par d’autres utilisateurs ou applications) avec les opérations LockFeature ou GetFeatureWithLock,
  4. Modification, création et suppression d’objets et libération des verrous qui ne sont plus utiles à l’aide de l’opération Transaction.

L’utilisation d’un service WFS-T se fait le plus souvent dans une configuration ou les applications clientes sont préalablement authentifiées. Pour cela, le standard WFS prévoit l’utilisation du protocole HTTPS pour les échanges sécurisés entre le service et ses clients.

Normes / Standards liés

Versions

Les différentes versions de spécifications du WFS (1.1 & 2) sont disponibles sur le site de l’OGC :
http://www.opengeospatial.org/standards/wfs

Profil d’application disponible

Service web de Gazetteer (WFS-G)

Un Gazetteer est un dictionnaire géographique. WFS-G est un profil applicatif du standard WFS dont l’objectif est de permettre l’accès à des lieux nommés organisés de manière hiérarchique. Ce type de service permet essentiellement de :

Un service WFS-G requiert les opérations GetCapabilities, DescribeFeatureType et GetFeature ainsi que la présence de classes d’objets particulières (dont la structure est définie dans les spécifications WFS-G). Les spécifications du profil WFS-G sont disponibles ici :

Exemple d’utilisation du WFS

Service Web d'annotation

Les analystes et autres utilisateurs d'images et de cartes, ont souvent besoin de résumer le contenu essentiel d'une image, de mettre en évidence certains objets ou de déterminer les similitudes et les différences entre images. De même, les spécialistes en SIG ont souvent besoin de souligner certains paramètres, de qualifier certains objets ou simplement d'annoter une carte.

Les annotations sont des objets décrivant un endroit donné et pouvant être partagés entre différents utilisateurs du système. Une annotation est composée d'une géométrie, d'un nom et d'une description. Un service WFS peut être configuré pour former un service d'annotation permettant de stocker les annotations en tant qu'objets.

Un service WFS supportant l’authentification peut permettre aux utilisateurs correctement identifiés de créer des annotations, de les partager ou de les protéger des autres utilisateurs.

Exemples d'implémentation du WFS

Pour trouver des applications (serveurs et clients) supportant le WFS :

Pour trouver un serveur WFS actif :

Sources et contributeurs

Web Feature Service (WFS)
Ce document provient de « http://georezo.net/wiki/main:standards:wfs ».
Dernière modification de cette page le 18 Novembre 2011.

Contributeurs : Benjamin Chartier, David Jonglez, Dimitri Sarafinof, Hervé Caumont (contributeur initial), Nicolas Klein, Yves Jacolin (contributeur initial)

Licence

Creative Commons Paternité- Pas d’utilisation commerciale - Partage des Conditions Initiales à l'Identique 2.0 France License
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/