Retour : Page Principale > Sommaire fonctionnement > Alexandre Galibert
Le web service doit contenir au minimum les trois méthodes suivantes :
Dans le cadre de mon web service, le format WFS représente un format de sortie supplémentaire en plus du GeoJSON déjà utilisé par la nouvelle version de l''application CartoPoint. Elle interroge donc à la fois les données botaniques de FloraData et celles qui ont été moissonnées dans la base de données de Tela-Botanica (actuellement Sophy et BazNat). La notion de couche dans le WFS correspond aux différentes sources de données. Il est aussi possible d'appliquer des filtres sur le nom scientifique des taxons de plantes ou de restreindre la recherche sur une BBOX.
Dans le cadre de la méthode GetFeature, le web service va récupérer les informations des stations présentes dans la base de données (nom de la station, coordonnnées GPS, commune, département) et la liste de plantes qui on été observées.
MĂ©thode GetCapabilities : http://api-test.tela-botanica.org/service:moissonnage:0.1/wfs?service=wfs&version=1.1.0&request=GetCapabilities
MĂ©thode DescribeFeatureType : http://api-test.tela-botanica.org/service:moissonnage:0.1/wfs?service=wfs&version=1.1.0&request=DescribeFeatureType
Méthode GetFeature (pour les données de FloraData) : http://api-test.tela-botanica.org/service:moissonnage:0.1/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=floradata
GetFeature avec paramètre bbox : http://api-test.tela-botanica.org/service:moissonnage:0.1/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=floradata&bbox=0,43,3,45
Les coordonnées de la BBOX sont indiquées de la manière suivante : ouest,sud,est,nord.
Dans cet exemple, on applique un filtre de type bbox en indiquant les coordonnées de la bbox dans laquelle on veut les observations. Le second filtre porte sur le nom scientifique des taxons. L'opérateur appliqué est dans ce cas là PropertyIsEqualTo (taxon = 'valeur'). Il est aussi possible de faire un LIKE sur le nom scientifique avec le filtre PropertyIsLike (taxon LIKE 'valeur%')
Récupérer la localisation des plantes avec un service WFS
Le format WFS
C'est à la fois un web service et un protocole utilisé dans le domaine de la cartographie web pour récupérer des informations spatiales sur un serveur. L'origine des données spatiales peut être diverse : base de données PostGIS ou MySQL, fichiers shapefile ou Mapinfo, etc. Le service WFS est appelé par URL formatée. Ces URLs doivent contenir l'adresse du service et des paramètres indiquant le nom du service, la version, la méthode appelée, voire des filtres sur les données. Les données renvoyées sont au format XML et suivent plusieurs normes (WFS version 1.1.0 et GML version 3.3.1).Le web service doit contenir au minimum les trois méthodes suivantes :
- GetCapabilities : cette méthode permet d'obtenir les méta-données du web service, c'est-à -dire quelles sont les données à interroger, qui les fournit, quelles couches interroger et quelles opérations il est possible d'appliquer dessus.
- DescribeFeatureType : cette méthode décrit les propriétés des attributs de chaque couche, à la manière des tables attributaires dans les logiciels SIG. On récupère de cette manière le nom et le type de tous les attributs.
- GetFeature : cette méthode est appelée pour interroger les différentes sources de données et récupérer toutes les informations spatiales et des autres attributs sur une ou plusieurs couches. Il est possible d'appliquer en plus des filtres sur les données ou de restreindre l'espace couvert dans le champ de recherche avec une bounding box (ou bordure). Les données renvoyées dans le document XML doivent suivre le norme GML.
Dans le cadre de mon web service, le format WFS représente un format de sortie supplémentaire en plus du GeoJSON déjà utilisé par la nouvelle version de l''application CartoPoint. Elle interroge donc à la fois les données botaniques de FloraData et celles qui ont été moissonnées dans la base de données de Tela-Botanica (actuellement Sophy et BazNat). La notion de couche dans le WFS correspond aux différentes sources de données. Il est aussi possible d'appliquer des filtres sur le nom scientifique des taxons de plantes ou de restreindre la recherche sur une BBOX.
Dans le cadre de la méthode GetFeature, le web service va récupérer les informations des stations présentes dans la base de données (nom de la station, coordonnnées GPS, commune, département) et la liste de plantes qui on été observées.
URLs pour appeler le web service :
MĂ©thode GetCapabilities : http://api-test.tela-botanica.org/service:moissonnage:0.1/wfs?service=wfs&version=1.1.0&request=GetCapabilities
MĂ©thode DescribeFeatureType : http://api-test.tela-botanica.org/service:moissonnage:0.1/wfs?service=wfs&version=1.1.0&request=DescribeFeatureType
Méthode GetFeature (pour les données de FloraData) : http://api-test.tela-botanica.org/service:moissonnage:0.1/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=floradata
GetFeature avec paramètre bbox : http://api-test.tela-botanica.org/service:moissonnage:0.1/wfs?service=wfs&version=1.1.0&request=GetFeature&typename=floradata&bbox=0,43,3,45
Les coordonnées de la BBOX sont indiquées de la manière suivante : ouest,sud,est,nord.
Le paramètre filter
Le paramètre filter peut être utilisé pour restreindre la recherche dans la base de données sur le nom scientifique de taxons ou dans une bbox. Son usage est exclusif avec le paramètre bbox, ce qui veut dire que l'on ne peut pas utiliser les deux paramètres en même temps. La valeur passée dans le paramètre filter doit obligatoirement être un fragment de code XML comme dans l'exemple suivant :<Filter> <BBOX> <PropertyName>coordonnees</PropertyName> <Box srsName='EPSG:4326'> <coordinates>0,43,3,45</coordinates> </Box> </BBOX> <PropertyIsEqualTo> <PropertyName>taxon</PropertyName> <Literal>Acer campestre</Literal> </PropertyIsEqualTo> </Filter>
Dans cet exemple, on applique un filtre de type bbox en indiquant les coordonnées de la bbox dans laquelle on veut les observations. Le second filtre porte sur le nom scientifique des taxons. L'opérateur appliqué est dans ce cas là PropertyIsEqualTo (taxon = 'valeur'). Il est aussi possible de faire un LIKE sur le nom scientifique avec le filtre PropertyIsLike (taxon LIKE 'valeur%')