Web Feature Service (WFS)



Documents pareils
Infrastructure de Données Spatiales

ArcGIS, Plateforme d'interopérabilité. Gaëtan LAVENU

Appui SIE :Développement de services web ADES/SIE

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Les applications webmapping en opensource. 1 Christophe Adriaensen

4. SERVICES WEB REST 46

Pierre Racine Professionnel de recherche Centre d étude de la forêt Département des sciences du bois et de la forêt, Université Laval, Québec

Services web géographiques, état de l art et perspectives

ArcGIS for INSPIRE SIG RAIL 2011

Information utiles. webpage : Google+ : digiusto/

Mise en œuvre de les capteurs dans la gestion de l eau

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Glossaire. base de données géographiques Voir géodatabase (GDB).

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Petite définition : Présentation :

A. À propos des annuaires

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Mise en œuvre des serveurs d application

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Plateforme PAYZEN. Définition de Web-services

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Définition des Webservices Ordre de paiement par . Version 1.0

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

La directive INSPIRE en Wallonie: le géoportail et l infrastructure de diffusion des géodonnées en Région wallonne (InfraSIG(

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Bases de données relationnelles

Cours CCNA 1. Exercices

Guide d installation

La base de données dans ArtemiS SUITE

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Programmation Web. Madalina Croitoru IUT Montpellier

Introduction aux «Services Web»

Module BD et sites WEB

Programmation Web Avancée Introduction aux services Web

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Guide d installation JMap 5.0

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

L3 informatique TP n o 2 : Les applications réseau

Sextant V4.0. Le portail de diffusion de l information géographique de l Ifremer. Sextant Présentation générale

Compte Rendu d intégration d application

Manuel d intégration API SOAP SMS ALLMYSMS.COM

ArcGIS 10.1 for Server

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

Programmation Internet Cours 4

Le Langage SQL version Oracle

Services bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Approche Contract First

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

CAHIER DES CHARGES D IMPLANTATION

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

TAGREROUT Seyf Allah TMRIM

Service Oriented Architecture (SOA)

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Gestion de stock pour un magasin

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Master 2 Géomatique Maîtres de stage : Jérôme MOUCHELIN AQUASCOP BIOLOGIE. Jean-Brieuc LEHÉBEL-PÉRON. Tuteur : Jean-Christophe DESCONNETS

FileMaker Server 14. Aide FileMaker Server

Cours Bases de données

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Cartographie et SIG interactifs en ligne Séance 1 : Présentation générale du webmapping : principe et techniques

Systèmes d'informations historique et mutations

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Etude et développement d un moteur de recherche

BD et XML : Exercices

Introduction aux. services web 2 / 2

Alfstore workflow framework Spécification technique

Langage SQL : créer et interroger une base

RMI le langage Java XII-1 JMF

Démonstrateur libre Application des données Open Street Map à l analyse géographique de réseaux de voirie et Transports Collectifs

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

HTML. Notions générales

Services Réseaux - Couche Application. TODARO Cédric

Le stockage local de données en HTML5

Guide d utilisation commandes des pièces de rechange Rev.1.0.3

Vulnérabilités et sécurisation des applications Web

Création et Gestion des tables

SQL Parser XML Xquery : Approche de détection des injections SQL

Le cadre des Web Services Partie 1 : Introduction

Les Géodatabases en 9.2

Guide Numériser vers FTP

Shibboleth. David Verdin - JOSY "Authentification centralisée pour les applications web" - Paris - 4 février mai

FileMaker Server 12. publication Web personnalisée avec XML

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Introduction à Microsoft InfoPath 2010

ArcGIS Server / 9.4. Gaëtan LAVENU Jean-Marie DULISCOUET

Transcription:

Bibliographie Introduction Web Feature Service (WFS) G. Gesquière Cours de Ian Turton https://www.e-education.psu.edu/geog585 Un Web Feature Server (WFS) fournit des données (features) à un client Peut aussi permettre au serveur de modifier, d ajouter des données WFS standard de l OGC WFS donne des données habituellement encodées en langage de formalisation des données géographique : Geographic Markup Language (GML). Objectifs de ce cours Décrire un Web Feature Server (WFS) Expliquer comment fonctionne un WFS Identifier la structure des requêtes WFS Bien distinguer les différences entre WMS et WFS Discussion sur les raisons de choisir l un plutôt que l autre WMS ou WFS 2- Liste des choses à faire 3- Introduction à Web Feature Servers 3- Introduction à Web Feature Servers Lire cours Lire la spécification OGC pour WFS 1.0 Read OGC WFS Specification - version 1.0: https://portal.opengeospatial.org/files/?artifact_id=7176 Faire ses propres essais avec WFS Un WFS Permet d obtenir ou demander des données basées sur des contraintes spatiales et non-spatiales. Fournit les fonctionalités de bases que la plupart des applications SIG demandent Permet de répondre à des questions comme Qu est ce qui est ici? Où est la route principale? Quelles sont les maisons à 30 Km de la rivière? Permet de mettre à jour une instance des données. Cela permet à un utilisateur de changer un attribut dans un ensemble de données sélectionné Exemple : Si on a besoin de montrer qu une route est fermée. Permet d effacer une instant de donnée si elle n est plus valide ou nécessaire Créer de nouvelles données. Cela permet à un utilisateur d ajouter des données à une carte. Spécification de WFS Ce que doit faire un WFS est décrit dans la spécification OGC 02-058 (version 1.0) et 04-094 (version 1.1). Pour ce cours, nous étudierons la version 1.0 qui est implémentée dans la plupart des serveurs actuels. Nous regarderons les changements que la version 1.1 implique 1

3- Introduction à Web Feature Servers 4- Rappel sur HTTP GET et POST 4- Rappel sur HTTP GET et POST Trois requêtes fournies par WFS getcapabilities Resquête très similaire à celle présente dans WMS Permet au client de découvrir quelles services et données le WMS supporte describefeaturetype Permet au client de déterminer le schéma d un ensemble de donnée Il est ainsi possible de savoir ce que l on va recevoir par la suite ou de savoir comment insérer de nouvelles données getfeature Retourne les données demandées par le client Le client peut définir sa requête en utilisant des filtres spatiaux et non spatiaux afin de limiter le nombre de données retournées. La requête getcapabilities doit être manipulée avec HTTP GET et POST; POST est en général utilisé. Rappel sur le dernier cours; utilisation de GET http://www.geovista.psu.edu/geoserver/wms?version=1.1.1&request =getmap &layers=topp:states&styles=population &SRS=EPSG:4326&bbox=-125,24,-67,50 &width=400&height=200&format=image/png La spécification de WFS dit que la plupart des opérations doit se faire avec la méthode POST. MéthodePOST Utilisée lorsque l on veut par exemple faire des formulaires dans un site Web. La spécification de HTTP dit que l on doit utiliser GET si il n y a pas d effet sur les requêtes. Sinon, il faut utiliser POST Si le formulaire fournit juste une carte, alors utiliser GET Si le formulaire permet d acheter une voiture, alors utiliser POST C est pourquoi la plupart des navigateurs affichent un message d alerte quand vous soumettez de nouveaux un formulaire Méthode POST Une requête POST encapsulent les paramètres et les placent dans le corps de la requête. Identique à la notion de mettre une lettre dans une enveloppe et la poster ensuite. Quand l enveloppe arrive, elle est ouverte et peut être lue. Avec POST, le serveur reçoit une requête et l ouvre afin de trouver les données incluses dedans. Utilisation de POST afin de contourner la limitation de la longueur d une URL sur certains navigateurs Exemple de GetCapabilities avec WFS http://webmapping.mgis.psu.edu/geoserver/wfs?request=getc apabilities&version=1.0.0 Obtention d un document XML Contient 4 parties Service Capabilities Feature Type List Filter Capabilities Section service Contient les mêmes sections que le getcapabilities de WMS Name = Nom assignée au instance Web Feature Service Title = Nom bref et compréhensible Abstract = description texte du serveur Keyword = Mots clés permettant OnlineRessource = définit l URL racine pour le services Fees = indique s il y a une taxe à payer pour l utilisation - NONE = rien à payer AccessConstraints = Contraintes d accès par le fournisseur d accès sur le WFS - NONE = Pas de contrainte d accès Section Capabilities Ressemble là encore à WMS Fait aussi partie des Spécifications communes imposées par l OGC Liste les requêtes que supportent le serveur Les requêtes requises getcapabilities getfeature describefeaturetype Requêtes optionnelles Requêtes liées au XFS transactionnel (possibilité de modifier les données) Voir cours sur WFS avancée Les requêtes transaction lockfeature getfeaturewithlock 2

La section FeatureTypeList Cette section contient 2 choses Liste des opérations que le serveur supporte Liste des FeatureTypes disponibles La section Operations Liste ce que le serveur peut faire Les opérations listées dans cette section peuvent être appliquées à toutes les couches Si une section opération dans l une des sections FeatureType, alors les opérations ne s applique qu à ce FeatureType Les opérations <Operations> <Query/> <Insert/> <Update/> <Delete/> <Lock/> </Operations> La section FeatureType Cette section décrit les données disponibles sur le serveur Equivalent à la section Layer dans le WMS capabilities Cet élément peut aussi inclure des éléments opérations qui ne s appliqueront qu à ce featuretype <FeatureType> <Name>gccm:inwatera</Name> <Title>inland water bodies</title> <Abstract>Generated from inwatera</abstract> <Keywords>inland water</keywords> <SRS>EPSG:4326</SRS> <LatLongBoundingBox minx="25.0" miny="-46.59166717529297" maxx="179.53147888183594" maxy="50.0"/> </FeatureType> La section FeatureType Name Title Abstract Keyword SRS = Quel système de référence spatial doit être utilisé. Operations = Opérations supportées par le feature type LatLongBoundingBox MetadataURL Un WFS peut utiliser 0 ou plus éléments <MetadataURL> Offrir des métadonnées standardisées liées aux données pour un type de feature particulier Deux types sont définis jusqu à présent 'TC211' = ISO TC211 19115 'FGDC' = FGDC CSDGM. Décrit qu elles filtres sont supportés sur le serveur Le schéma de la section Filter Capabilities est défini dans la spécification de l implémentation de Filter Encoding portal.opengeospatial.org/files/?artifact_id=8340 Section optionnelle. Si elle existe, le WFS doit supporter les opérations définies ici Si la section Filter Capabilities n est pas défini, alors il faut considérer que le serveur ne support qu un ensemble par défaut d opérations de filtres (définies dans la spécification de l implémentation de Filter Encoding) <ogc:spatial_capabilities> <ogc:spatial_operators> <ogc:disjoint/> <ogc:equals/> <ogc:dwithin/> <ogc:beyond/> <ogc:intersect/> <ogc:touches/> <ogc:crosses/> <ogc:within/> <ogc:contains/> <ogc:overlaps/> <ogc:bbox/> </ogc:spatial_operators> </ogc:spatial_capabilities> <ogc:scalar_capabilities> <ogc:logical_operators/> <ogc:comparison_operators> <ogc:simple_comparisons/> <ogc:between/> <ogc:like/> <ogc:nullcheck/> </ogc:comparison_operators> <ogc:arithmetic_operators> <ogc:simple_arithmetic/> </ogc:arithmetic_operators> </ogc:scalar_capabilities> 3

Exemple DWithin teste si un feature est à une certaine distance d un point ou d une autre géométrie. Les opérations logiques sont And Ot Not Les comparaisons simples sont greater than, less than et equal to between permet de spécifier des bornes supérieures et inférieures Like permet de chercher une série de chaine de caractères comme on ferait en tapant par exemple "lac * (rechercher tous les features qui commencent par lac. Les opératuers arithmétiques simples sont add, subtract, multiply et divide. 6- Requête DescribeFeatureType Permet de générer une description des schémas des features servis par l implémentation WFS La description du schéma résultant définit comment un implémentation WFS est censée encoder une instance de feature en entrée Comment elle est censée être générée en sortie Requête La requête est en général construite comme un document XML Elle est passée au serveur en utilisant une requête POST Cela spécifie quel type de feature nous intéresse Dans cecas topp:bc_roads <DescribeFeatureType version="1.0.0" service="wfs" xmlns="http://www.opengis.net/wfs" xmlns:topp="http://www.openplans.org/topp" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.opengis.net/wfs http:// schemas.opengis.net/wfs/1.0.0/wfs-basic.xsd"> <TypeName>topp:bc_roads</TypeName> </DescribeFeatureType> Reponse <xs:schema targetnamespace="http://www.openplans.org/topp" elementformdefault="qualified" attributeformdefault="unqualified" version="1.0"> <xs:import namespace="http://www.opengis.net/gml" chemalocation="http://localhost:8080/geoserver/data/ capabilities/gml/2.1.2/feature.xsd"/> <xs:complextype name="bc_roads_type"> the bc_roads type is complex. <xs:complexcontent> <xs:extension base="gml:abstractfeaturetype"> and extends an abstract feature <xs:sequence> it consists of a sequence of <xs:element name="the_geom" minoccurs="0" nillable="true" type="gml:multilinestringpropertytype"/> the geometry (a multilinestring) <xs:element name="length" minoccurs="0" nillable="true" type="xs:double"/> the length of the road <xs:element name="btrn_bc_id" minoccurs="0" nillable="true" type="xs:int"/> its ID code </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> <xs:element name="bc_roads" type="topp:bc_roads_type" substitutiongroup="gml:_feature"/> </xs:schema> 7- La requête GetFeature 7- La requête GetFeature 7- La requête GetFeature Permet de demander les données En WFS récupération de donners plutôt que des images avec WMS Les attributs de GetFeature version (information requise) = 1.0.0 ou 1.1.0 service (requis et toujours WFS) outputformat (optionnel) Quel format listé dans les capabilities voulez vous en réponse? Format par défaut = GML maxfeatures (optionnel) Quel est le nombre maximum d objet géographique voulez vous en réponse Par défaut = non limité query (Requis) typename (requis) - Quel type d objet géographique voulez vous en retour? featureversion (optionnel) Fournit le support pour les stockages versionnés d objets géographiques 1 is the le ancien (default le plus récent) propertyname (optional) Quelle propriété de l objet géographique voulez vous pour chaque objet géographique? filter (optionnel) Un filtre qui sélectionne quel objet géographique il faut retourner Un filtre peut être spatial ou basé sur des valeurs des attributs Requête <wfs:getfeature service="wfs" version="1.0.0" outputformat="gml2" we would like gml2 as the return format xmlns:topp="http://www.openplans.org/topp" xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs-basic.xsd"> <wfs:query typename="topp:bc_roads"> we want to query bc_roads features <ogc:filter> <ogc:featureid fid="bc_roads.1"/> only return features with an ID of bc_roads.1 </ogc:filter> </wfs:query> </wfs:getfeature> La réponse du serveur est une collection d objets géographiques encodées en GML. Comparer cet objet géographique avec le schéma que describefeature a retrouné (voir page précédente) 4

<wfs:featurecollection xsi:schemalocation="http://www.openplans.org/topp http://localhost:8080/geoserver/wfs/describefeaturetype?typename=topp:bc_roads http://www.opengis.net/wfs http://localhost:8080/geoserver/data/capabilities/wfs/1.0.0/wfs-basic.xsd"> <gml:boundedby> the bounds of the features returned <gml:box srsname="http://www.opengis.net/gml/srs/epsg.xml#27354"> <gml:coordinates decimal="." cs="," ts=" "> 494475.71056415,5433016.8189323 494982.7 0115662,5435041.95096618 </gml:coordinates> </gml:box> </gml:boundedby> <gml:featuremember> the first feature <topp:bc_roads fid="bc_roads.1"> its ID <topp:the_geom> the geometry <gml:multilinestring a multistring srsname="http://www.opengis.net/gml/srs/epsg.xml#27354"> <gml:linestringmember> <gml:linestring> <gml:coordinates decimal="." cs="," ts=" "> the actual coordinates 494475.71056415,5433016.8189323 494982.70115662,5435041.95096618 </gml:coordinates> </gml:linestring> </gml:linestringmember> </gml:multilinestring> </topp:the_geom> <topp:length>2163.48</topp:length> the length of the road <topp:btrn_bc_id>13166</topp:btrn_bc_id> the road name/id </topp:bc_roads> </gml:featuremember> </wfs:featurecollection> 8- Geographic Markup Language GML est un langage à base de balises pour les données géographiques proposé par l OGC La dernière version est GML 3, mais beaucoup de serveurs fonctionnent en GML 2 (qui est considérablement plus simple et facile pour travailler) Comme la plupart des serveurs migrent actuellement vers WFS 1.1.0, il sera nécesssaire de passer rapidement à GML 3 GML est basé sur XML Il est fait pour représenter des objets géographiques Un exemple simple <gml:multilinestring srsname="http://www.opengis.net/gml/srs/epsg.xml#27354"> <gml:linestringmember> <gml:linestring> <gml:coordinates decimal="." cs="," ts=" "> 494475.71056415,5433016.8189323 494982.70115662,5435041.95096618 </gml:coordinates> </gml:linestring> </gml:linestringmember> </gml:multilinestring> 9- Clients et serveurs WFS Clients Google udig Open Source client pour PC; il supporte aussi WFS Gaia Application libre, mais code fermé Mapbuilder Client open source basé sur AJAX et javascript OpenLayers - Client open source basé sur AJAX et javascript Serveurs GeoServer - open source, serveur en java avec WMS et WFS Deegree - Open source, serveur en java avec WMS et WFS MapServer Open source, serveur en C avec WMS et WFS Mapserver est particulièrement bon pour fournir de l image Raster Ionic Serveur propriétaire avec WFS 10 les différences entre WFS 1.0.0 et WFS 1.1.0 10 les différences entre WFS 1.0.0 et WFS 1.1.0 11- Quelques tests Il faut maintenant tenir compte de la version dans la négociation entre le client et le serveur 1. Le client donne le numéro de version qu il peut supporter 2. Le serveur répond et proposant cette version ou une version plus ancienne qu il peut supporter 3. Le client peut alors accepter cette version et continuer ou proposer une nouveau numéro de version Changements dans le WFS 1.1 GetCapabilities Négociation de version comme décrit ci-dessus est requise Nouveau support pour l encodage SOAP SOAP (ancien acronyme de Simple Object Access Protocol) est un protocole de RPC orienté objet bâti sur XML. Il permet la transmission de messages entre objets distants, ce qui veut dire qu'il autorise un objet à invoquer des méthodes d'objets physiquement situés sur un autre serveur. Le transfert se fait le plus souvent à l'aide du protocole HTTP, mais peut également se faire par un autre protocole, comme SMTP. Changements dans WFS 1.1 DescribeFeatureType Le type par défaut en sortie est text/xml; subtype=gml/3.1.1 Un type de sortie optionnel est fourni afin de permettre une retro compatibilité text/xml; subtype=gml/2.1.2 Changements dans WFS 1.1 GetFeature Le format de sortie par défaut est text/xml; subtype=gml/3.1.1 Un type de format de sortie optionnel permet la rétro compatibilité text/xml; subtype=gml/2.1.2 Un paramètre optionnel sortby a été ajouté afin de permettre aux clients faire une requête sur un attribut ou des attributs sur lesquels la réponse peut être trié Un paramètre optionnel resulttype=hits a été ajouté pour permettre au serveur de retourner un compteur donnant le nombre d objets géographiques qui correspondent à la requête Reprojection (support SRS Nouvelle requête dans WFS 1.1 GetGMLObject Supportée de façon optionnelle dans la version 1.1 Mise en place pour que un client puisse requêter un objet géographique identifié par son gml:id Le serveur doit aussi calculer l objet géographique avant de le retourner, ajouter les éléments distantes qui sont définis dans le GML Aller Sur http://geoserver.org. Installer geoserver Windows http://geoserver.org/display/geosdoc/1.1.1+windows+install Linux ou Max (Systèmes basés sur Unix) http://geoserver.org/display/geosdoc/1.1+install+geoserver Lancer le serveur Dans un navigateur, ouvrez http://localhost:8080/geoserver/ En cas d erreur, regarder si java est bien installé Aller sur la page démo est choisir la page d exemple Regarder la requête et appuyer sur "submit. Vous obtenez un fichier XML en réponse Essayez de modifier les requêtes 5

6