Lundi 21, j’ai assisté à la 5e journée de l’interopérabilité organisée par le Forum français de l’OGC pour y faire une présentation du standard WFS. Ce standard constituait d’ailleurs le thème principal de la journée. Au cours de cette journée, il a été fait mention à plusieurs reprises de l’inadéquation de GML à certains usages (en particulier pour l’affichage d’objets vectoriels dans un client léger, voire au travers d’un smartphone. Plusieurs intervenants ont donc évoqué le besoin d’utiliser un format plus compact et plus facilement assimilable par des applications écrites en javascript : GeoJSON pour ne pas le nommer.

Aujourd’hui, le format par défaut de WFS est le GML. Le standard laisse néanmoins la porte ouverte à d’autres formats. Voici un exemple de requête GetFeature tiré de la version 2.0 des spécifications de WFS et qui demande une réponse en KML :

http://www.someserver.com/wfs.cgi?
SERVICE=WFS&
VERSION=2.0.0&
REQUEST=GetFeature&
TYPENAMES=PLACES&
BBOX=18.54,-72.3544,18.62,-72.2564&
OUTPUTFORMAT=KML

J’ai effectué une petite recherche pour essayer de déterminer si le format GeoJSON est une alternative répandue au format GML du côté des serveurs. Voici quelques exemples de listes de formats issues de services qui indiquent le support de JSON :

text/xml;subtype=gml/3.1.1
application/csv
application/javascript
application/shape
application/serialized.feature
text/xml; subtype=gml/3.1.1
text/xml; subtype=gml/2.1.2
application/json
text/xml; subtype=gml/3.1.1
GML2
GML2-GZIP
SHAPE-ZIP
csv
gml3
json
text/xml; subtype=gml/2.1.2

Plusieurs constats :

  • le support de JSON et GeoJSON par les services WFS n’est pas rare mais est loin d’être supporté par toutes les implémentations ;
  • certains de ces services supportent JSON mais pas GeoJSON ;
  • la distinction entre les deux formats est impossible à faire en lisant les « capabilities » du service ;
  • l’utilisation des types MIME n’est pas homogène d’une implémentation à une autre. Pour information, une discussion est en cours à l’OGC pour essayer de l’homogénéiser l’usage des types MIME ;
  • les implémentations supportent souvent d’autres formats que GML pour l’opération GetFeature mais pas pour les autres opérations (DescribeFeatureType et Transaction notamment).

En conclusion, oui vous pouvez utiliser du GeoJSON en sortie d’un service WFS. Il y a un « mais » : la déclaration de ce format dans les capabilities des services WFS reste imparfaite ce qui peut entrainer des problèmes d’interopérabilité entre clients et services. Par ailleurs, son usage semble se limiter à l’opération GetFeature. On peut également noter que des initiatives au sein de l’OGC visent à définir des interfaces de services web respectant les principes de REST. Les travaux (propositions faites par ESRI et CubeWerx) allant dans ce sens font figurer JSON et GeoJSON en bonne place.

Note pour ceux qui utilisent MapServer : le support de JSON peut être ajouté en sortie d’un service WFS à l’aide de templates (cf. ici).

WFS et JSON
Étiqueté avec :            

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.