Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?

Ceci est une ancienne révision du document !



Strict Standards: Declaration of syntax_plugin_tag_topic::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/tag/syntax/topic.php on line 123

Strict Standards: Declaration of syntax_plugin_tag_topic::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/tag/syntax/topic.php on line 123

Strict Standards: Declaration of syntax_plugin_tag_searchtags::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/tag/syntax/searchtags.php on line 280

Strict Standards: Declaration of syntax_plugin_tag_searchtags::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/tag/syntax/searchtags.php on line 280

Strict Standards: Declaration of syntax_plugin_tag_tag::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/tag/syntax/tag.php on line 118

Strict Standards: Declaration of syntax_plugin_tag_tag::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/tag/syntax/tag.php on line 118

Strict Standards: Declaration of syntax_plugin_tag_count::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/tag/syntax/count.php on line 130

Strict Standards: Declaration of syntax_plugin_tag_count::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/tag/syntax/count.php on line 130

Strict Standards: Declaration of syntax_plugin_tag_tagpage::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/tag/syntax/tagpage.php on line 96

Strict Standards: Declaration of syntax_plugin_tag_tagpage::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/tag/syntax/tagpage.php on line 96

Strict Standards: Declaration of syntax_plugin_clearfloat::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/clearfloat/syntax.php on line 74

Strict Standards: Declaration of syntax_plugin_clearfloat::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/clearfloat/syntax.php on line 74

Strict Standards: Declaration of syntax_plugin_pageindex::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/pageindex/syntax.php on line 187

Strict Standards: Declaration of syntax_plugin_pageindex::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/pageindex/syntax.php on line 187

Strict Standards: Declaration of syntax_plugin_googlemaps_googlemap::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/googlemaps/syntax/googlemap.php on line 169

Strict Standards: Declaration of syntax_plugin_googlemaps_googlemap::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/googlemaps/syntax/googlemap.php on line 169

Strict Standards: Declaration of syntax_plugin_nextpage::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/nextpage/syntax.php on line 69

Strict Standards: Declaration of syntax_plugin_nextpage::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/nextpage/syntax.php on line 69

Strict Standards: Declaration of syntax_plugin_include::handle() should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /var/www/html/web/wiki/lib/plugins/include/syntax.php on line 137

Strict Standards: Declaration of syntax_plugin_include::render() should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /var/www/html/web/wiki/lib/plugins/include/syntax.php on line 137
Plugin installed incorrectly. Rename plugin directory 'backlinks.old' to 'backlinks'.

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 premier retourne les métadonnées,
  • le deuxième renvoie les données elles-mêmes (collection d’objets) ou des informations constitutives de ces données (attributs d’un objet),
  • le troisième niveau d’opération, optionnel, permet de modifier/manipuler les données. On parle alors de service WFS-T pour Transactionnel (cf. détails dans la description des 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”.

  • 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 (cf. opération GetGmlObject) et de résoudre des liens XLink (cf. paramètres traverseXlinkDepth et traverseXlinkExpiry des opérations GetGmlObject, GetFeature et GetFeatureWithLock).
  • Les WFS transactionnels (WFS-T) supportent toutes les opérations des WFS basiques en y ajoutant les opérations de transaction. Un mécanisme de verrouillage est optionnel ; il permet à plusieurs utilisateurs d'effectuer simultanément une série d'opérations comme la création, la mise à jour, la suppression et l'interrogation de différentes entités géographiques sans risque de conflit.

Encodage des requêtes

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'est-à-dire HTTP POST avec encodage de la requête dans l’élément Body du message SOAP).

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'écrire les paramètres en majuscules pour une meilleure lisibilité.
  • Les paramètres peuvent être définis dans n'importe quel ordre.
  • Les listes de valeurs doivent utiliser la virgule comme séparateur.
  • 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, sauf pour l’opération GetCapabilities) : définit le numéro de version du standard WFS utilisé, 1.1.0 par exemple
  • 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 (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, versions et encodages des requêtes supportées par le service,
  • 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 :

  • SERVICE=WFS : type de service
  • REQUEST=GetCapabilities : nom de l’opération

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 du service). La valeur par défaut de ce paramètre est txt/xml et les spécifications WFS indiquent que la réponse à cette opération est obligatoirement un document XML
  • ACCEPTVERSIONS : liste des versions du standard WFS supportés par l’application cliente. Exemple : 1.1.0,1.0.0. Ce paramètre n’est pas obligatoirement reconnu par tous les services (son support est documenté dans les Capabilities du service)
  • SECTIONS : liste des sections des Capabilities du service à récupérer. Les noms des sections sont : ServiceIdentification, ServiceProvider, OperationsMetadata, FeatureTypeList, ServesGMLObjectTypeList, SupportsGMLObjectTypeList et Filter_Capabilities. Ce paramètre n’est pas obligatoirement reconnu par tous les services (son support est documenté dans les Capabilities du service)
  • 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, le service peut déterminer s’il est nécessaire de renvoyer ce document à l’application cliente. Ce paramètre n’est pas obligatoirement reconnu par tous les services. Exemple de valeur : XYZ123.

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 :

  • SERVICE=WFS : type de service
  • VERSION : version de WFS (e.g. 1.1.0)
  • REQUEST=DescribeFeatureType : nom de l’opération

Paramètres optionnels :

  • TYPENAME : liste des classes d’objets pour lesquels l’utilisateur désire une description plus précise
  • OUTPUTFORMAT : format dans lequel est fournie la description des objets (GML 3.1.1 est le format par défaut).

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 :

  • 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/results) : permet d’indiquer si l’on désire seulement connaitre le nombre de résultats (hits) satisfaisant la requête ou récupérer la description complète des objets (results). Valeur par défaut : results
  • 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 : limite le nombre maximal d’entités que l’on désire recevoir en réponse (par défaut, tous les résultats sont transmis)
  • SRSNAME : nom du SRS désiré pour les géométries des objets retournés
  • 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 optionnels spécifiques à la résolution des liens XLink :

  • TRAVERSEXLINKDEPTH : profondeur maximale de résolution des liens XLink (valable pour l’ensemble des propriétés, sauf mention spécifique par le paramètre PROPTRAVXLINKDEPTH)
  • 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, sauf mention spécifique par le paramètre PROPTRAVXLINKEXPIRY)
  • 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

GetGmlObject

Paramètres obligatoires :

  • REQUEST=[GetGmlObject]
  • TRAVERSEXLINKDEPTH
  • GMLOBJECTID=

Paramètres non obligatoires :

  • TRAVERSEXLINKEXPIRY=

LockFeature

Transaction

Bibliographie

 
main/standards/wfs.1321895727.txt.gz · Dernière modification: 2011/11/21 18:15 par Nicolas
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki