- Vous êtes ici : Accéder au Wiki GeoRezo » Accueil : Wiki GeoRezo » Les standards de l'OGC » Web Feature Service (WFS)
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| main:standards:wfs [2011/11/21 17:01] – [Description] Nicolas | main:standards:wfs [2026/01/03 20:48] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 16: | Ligne 16: | ||
| 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. | 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. | ||
| - | ===== Requêtes | + | ===== Fonctionnement |
| - | Les informations listées dans cette section sont issues de la documentation | + | ==== Les types d' |
| - | ==== Paramètres communs ==== | + | Un WFS peut être implémenté à trois niveaux: soit " |
| - | * '' | + | * Les WFS **basiques** donnent un accès en lecture seule (c’est à dire le téléchargement) aux données. |
| - | * '' | + | * Les WFS **XLink** permettent de plus d’accéder aux objets ou à leurs propriétés par leurs identifiants |
| - | * '' | + | * Les WFS **transactionnels** |
| - | * '' | + | |
| - | Les nom des paramètres ne sont pas sensible à la casse contrairement aux valeurs ('' | + | ==== Encodage |
| - | Les listes de valeurs doivent utiliser la virgule | + | WFS 1.1 décrit trois formes d’encodage des requêtes, à savoir : |
| + | * **HTTP GET** avec un encodage KVP (Key-Value-Pair) des requêtes, | ||
| + | * **HTTP POST** avec un encodage XML KVP des requêtes, | ||
| + | * **SOAP** (c' | ||
| + | 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). | ||
| + | * Il est conseillé d' | ||
| + | * Les paramètres peuvent être définis dans n' | ||
| + | * Les listes de valeurs doivent utiliser la virgule | ||
| + | * Si une virgule ou un espace est présent dans la valeur, celle-ci doit être précédée d’un caractère d’échappement. | ||
| + | |||
| + | Paramètres communs : | ||
| + | * **VERSION** (obligatoire, | ||
| + | * **SERVICE** (obligatoire) : définit le type de service, obligatoirement WFS pour un service WFS | ||
| + | * **REQUEST** (obligatoire) : indique quelle opération du service est invoquée. La valeur doit être le nom d'une opération offerte par le serveur | ||
| + | * **NAMESPACE** (optionnel) : définit l’espace de nommage permettant de qualifier un objet géographique ou ses propriétés | ||
| + | * **FORMAT** (optionnel) : définit le format de sortie de la réponse d'une opération. Le serveur doit gérer un certain nombre de formats, et doit les indiquer dans ses métadonnées | ||
| + | * **EXCEPTIONS** (optionnel) : indique le format de présentation des messages d’erreur retournés par le serveur | ||
| + | |||
| + | ===== Les opérations du WFS ===== | ||
| + | Les opérations offertes par un service WFS sont : | ||
| ==== GetCapabilities (obligatoire) ==== | ==== 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) : | ||
| + | * les **métadonnées** du service : identification du service et de l’entité qui fournit le service, | ||
| + | * les **opérations**, | ||
| + | * les **classes d’objets** servies, | ||
| + | * les **propriétés des objets** accessibles via l’opération GetGmlObject, | ||
| + | * les **capacités de filtre** du service. | ||
| Paramètres obligatoires : | Paramètres obligatoires : | ||
| - | * '' | + | * **SERVICE**=WFS : type de service |
| - | * '' | + | * **REQUEST**=GetCapabilities |
| + | Paramètres optionnels : | ||
| + | * **VERSION** : version de WFS (e.g. 1.1.0) | ||
| + | * **ACCEPTFORMATS** : liste des formats (sous forme de types MIME) acceptés par l’application cliente. Ce paramètre n’est pas obligatoirement reconnu par tous les services (son support est documenté dans les Capabilities | ||
| + | * **ACCEPTVERSIONS** : liste des versions du standard WFS supportés par l’application cliente. Exemple : 1.1.0, | ||
| + | * **SECTIONS** : liste des sections des Capabilities du service à récupérer. Les noms des sections sont : ServiceIdentification, | ||
| + | * **UPDATESEQUENCE** : Chaîne de caractères identifiant la dernière version des “Capabilities” du service en possession de l’application cliente. A l’aide de cette information, | ||
| + | |||
| + | Exemple de requête: | ||
| + | http:// | ||
| + | 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 : | ||
| + | * **SERVICE**=WFS | ||
| + | * **VERSION** : version de WFS (e.g. 1.1.0) | ||
| + | * **REQUEST**=DescribeFeatureType : nom de l’opération | ||
| Paramètres optionnels : | Paramètres optionnels : | ||
| - | * '' | + | * **TYPENAME** |
| - | | + | * **OUTPUTFORMAT** |
| - | * '' | + | |
| - | La réponse est un fichier XML. | ||
| - | Exemple de requête GetCapabilities | + | ==== GetFeature (obligatoire) ==== |
| + | GetFeature (Basique) | ||
| - | ==== DescribeFeatureType ==== | + | Paramètres obligatoires : |
| - | Paramètre obligatoire | + | * **SERVICE**=WFS : type de service |
| - | * '' | + | * **VERSION** : version de WFS (e.g. 1.1.0) |
| + | * **REQUEST**=GetFeature : nom de l’opération | ||
| + | * **TYPENAME** : la liste des types d’objets requêtés (optionnel si une liste FEATUREID est fournie) | ||
| + | Paramètres optionnels : | ||
| + | * **OUTPUTFORMAT** : format dans lequel est fournie la description des objets (GML 3.1.1 est le format par défaut) | ||
| + | * **RESULTYPE**=(hits/ | ||
| + | * **PROPERTYNAME** : noms des propriétés qui doivent être fournies avec les objets requêtés | ||
| + | * **FEATUREVERSION**=(ALL/N) : permet d’indiquer la version des objets géographiques que l’on désire obtenir (uniquement valable dans le cas du support du versionnement dans la base de données et par le service WFS). ALL permet de prendre en compte toutes les versions des objets. L’omission de ce paramètre implique que seule la dernière version des objets est prise en compte | ||
| + | * **MAXFEATURES** | ||
| + | * **SRSNAME** : nom du SRS désiré pour les géométries des objets retournés (officiellement à partir de WFS 1.1.0, bien que GeoServer l'accepte pour WFS 1.0.0) | ||
| + | * **FEATUREID** : liste d’identifiants des objets géographiques à retourner (usage mutuellement exclusif avec FEATUREID et FILTER) | ||
| + | * **FILTER** : filtre exprimant des conditions sur les objets à retourner (usage mutuellement exclusif avec FEATUREID et BBOX) | ||
| + | * **BBOX** : rectangle englobant limitant spatialement la requête (usage mutuellement exclusif avec FEATUREID et FILTER) | ||
| + | * **SORTBY** : permet de trier les données retournées suivant la valeur d’une ou plusieurs propriétés des objets (juste un paramètre de présentation des données retournées) | ||
| - | Paramètres | + | Paramètres |
| - | * '' | + | * **TRAVERSEXLINKDEPTH** : profondeur maximale de résolution des liens XLink (valable pour l’ensemble des propriétés, |
| - | * '' | + | * **TRAVERSEXLINKEXPIRY** : durée en minutes pendant laquelle le service WFS doit attendre pour la résolution des liens XLink (valable pour l’ensemble des propriétés, |
| + | * **PROPTRAVXLINKDEPTH / PROPTRAVXLINKEXPIRY** : contraintes identiques aux deux paramètres précédents mais s’appliquent de manière spécifique aux propriétés spécifiées par le paramètre PROPERTYNAME | ||
| + | |||
| + | ==== 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 : | ||
| + | * **EXPIRY** : durée en minutes pendant laquelle les objets doivent être verrouillés (la définition des conditions dans lesquelles les verrous sont supprimés, lorsqu’aucune valeur n’est spécifiée dans la requête, est propre à chaque implémentation) | ||
| + | |||
| + | 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. | ||
| - | ==== GetFeature ==== | ||
| Paramètres obligatoires : | Paramètres obligatoires : | ||
| - | * '' | + | * **SERVICE**=WFS : type de service |
| - | * '' | + | * **VERSION**=version : version de WFS (e.g. 1.1.0) |
| + | * **REQUEST**=GetGmlObject : nom de l’opération | ||
| + | * **TRAVERSEXLINKDEPTH** : profondeur maximale de résolution des liens XLink (valable pour l’ensemble des propriétés, | ||
| + | * **GMLOBJECTID** : identifiant d’un objet ou d’une propriété d’un objet à récupérer | ||
| - | Paramètres non obligatoires | + | Paramètre optionnel |
| - | * '' | + | * **TRAVERSEXLINKEXPIRY** : durée en minutes pendant laquelle le service WFS doit attendre pour la résolution des liens XLink |
| - | | + | ==== LockFeature (optionnel)==== |
| - | | + | **LockFeature** (WFS-T) - Cette opération permet le verrouillage d’une ou plusieurs entités pendant la durée d'une transaction, |
| - | | + | |
| - | | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | ==== GetGmlObject ==== | ||
| Paramètres obligatoires : | Paramètres obligatoires : | ||
| - | * '' | + | * **SERVICE**=WFS : type de service |
| - | * '' | + | * **VERSION** : version de WFS (e.g. 1.1.0) |
| - | | + | * **REQUEST**=LockFeature : nom de l’opération |
| + | * **TYPENAME** : liste des types d’objet sur lesquels le verrou veut être posé (optionnel si une liste FEATUREID est fournie) | ||
| + | |||
| + | Paramètres optionnels : | ||
| + | * **EXPIRY** : durée en minutes pendant laquelle les objets doivent être verrouillés (la définition des conditions dans lesquelles les verrous sont supprimés, lorsque aucune valeur n’est spécifiée dans la requête, est propre à chaque implémentation) | ||
| + | * **LOCKACTION**=(ALL/ | ||
| + | * **FEATUREID** : liste d’identifiants des objets géographiques à retourner (usage mutuellement exclusif avec FEATUREID et FILTER) | ||
| + | * **FILTER** : filtre exprimant des conditions sur les objets à retourner (usage mutuellement exclusif avec FEATUREID et BBOX) | ||
| + | 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 : | ||
| + | * **SERVICE**=WFS : type de service | ||
| + | * **VERSION** : version de WFS (e.g. 1.1.0) | ||
| + | * **REQUEST**=Transaction : nom de l’opération | ||
| + | * **TYPENAME** : liste des types d’objet sur lesquels l’opération veut être exécutée (ce paramètre est optionnel si le paramètre FEATUREID est renseigné) | ||
| + | |||
| + | Paramètres optionnels: | ||
| + | * **RELEASEACTION**=(ALL/ | ||
| + | * **FEATUREID** : liste d’identifiants des objets géographiques à retourner (usage mutuellement exclusif avec FEATUREID et FILTER) | ||
| + | * **FILTER** : filtre exprimant des conditions sur les objets ciblés (usage mutuellement exclusif avec FEATUREID et BBOX) | ||
| + | * **BBOX** : rectangle englobant limitant spatialement la requête (usage mutuellement exclusif avec FEATUREID et FILTER) | ||
| + | |||
| + | Remarque : Les trois types de transaction possibles avec WFS sont INSERT (création), | ||
| + | |||
| + | ===== Cas d'usage classique du WFS ===== | ||
| + | |||
| + | À titre d’exemple et pour illustrer l’utilisation de ces opérations, | ||
| + | | ||
| + | * de vérifier que le service implémente bien la version de WFS qu’elle supporte, | ||
| + | * de vérifier que les opérations dont elle a besoin pour mettre à jour la base de données sont offertes par le service, | ||
| + | * d’identifier la classe d’objets qu’elle souhaite mettre à jour. | ||
| + | - Prise de connaissance du modèle de données de la classe d’objets à mettre à jour grâce à l’opération **DescribeFeatureType**, | ||
| + | - 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**, | ||
| + | - 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**, | ||
| + | - Modification, | ||
| + | |||
| + | 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===== | ||
| + | * **GML 3.1** (http:// | ||
| + | * **Filter Encoding 1.1** (http:// | ||
| + | * **OWS Common Implementation Specification 0.3.0** – 04-016r3. Ce document décrit des opérations et paramètres communs aux standards de services web de l’OGC. Ce document n’est pas accessible sur le site de l’OGC. | ||
| + | |||
| + | =====Versions===== | ||
| + | Les différentes versions de spécifications du WFS (1.1 & 2) sont disponibles sur le site de l’OGC : | ||
| + | http:// | ||
| + | |||
| + | =====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 : | ||
| + | * **localiser** géographiquement un nom de lieux donné, | ||
| + | * **rechercher** des lieux en navigant dans la hiérarchie de noms de lieux, | ||
| + | * **consulter** les noms de lieux localisés dans une zone donnée. | ||
| + | |||
| + | Un service WFS-G requiert les opérations GetCapabilities, | ||
| + | * **Gazetteer Service** - Application Profile of the Web Feature Service Implementation Specification 0.9.3 05-035r2 (http:// | ||
| + | |||
| + | =====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, | ||
| + | |||
| + | 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, | ||
| + | |||
| + | Un service WFS supportant l’authentification peut permettre aux utilisateurs correctement identifiés de créer des annotations, | ||
| + | |||
| + | =====Exemples d' | ||
| + | Pour trouver des applications (serveurs et clients) supportant le WFS : | ||
| + | * http:// | ||
| + | * | ||
| + | Pour trouver un serveur WFS actif : | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| - | Paramètres non obligatoires : | + | =====Sources et contributeurs===== |
| - | * '' | + | **Web Feature Service** (WFS) |
| + | Ce document provient de « http:// | ||
| + | Dernière modification de cette page le 18 Novembre 2011. | ||
| - | ==== LockFeature==== | + | Contributeurs : Benjamin Chartier, David Jonglez, Dimitri Sarafinof, Hervé Caumont (contributeur initial), Nicolas Klein, Yves Jacolin (contributeur initial) |
| - | ==== Transaction ==== | + | * Forum français de l’OGC (http:// |
| + | * Groupe OGC de l’Afigéo (http:// | ||
| - | ===== Bibliographie | + | =====Licence===== |
| - | - http://www.opengeospatial.org/standards/wfs | + | Creative Commons Paternité- Pas d’utilisation commerciale - Partage des Conditions Initiales à l' |
| - | | + | http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |
| - | [<<<>>> | ||

