Etat de l'art des API Web Cartographiques

Les données

Vecteur

Description

Les données vecteurs sont des données géométriques pouvant être de plusieurs types, Points, Polylignes, et Polygones.

La donnée vectorielle est un type de choix dans le monde du SIG (Système d'Information Géographique) puisque elle permet d'obtenir de la donnée de grande précision avec chaque point de la géométrie possédant ses propres coordonnées.

Provenance

La donnée vectorielle peut être stocké de plusieurs manières :

  • Une des solutions les plus utilisées est la base de données.
    • Une base de données classique (MySQL, PostgreSQL, SQLite, etc.) peuvent très bien suffire pour la plupart des usages. La données vectorielles étant une liste de coordonnées représentant la géométrie en question.
    • Il existe une solution plus adaptée au monde SIG c'est les base de données spatiales. Aujourd'hui un grand nombre de bases de données possèdent une extension pour gérer les données géo et donc les données vectorielles. Les bases de données spatiales ajoutent également la possibilité de faire des requêtes spatiales (exemple: Sélectionner les points qui intersectent avec le polygone de la ville X).
  • Une autre solution est de plus en utilisé, le GeoJSON. Avec la montée en puissance du HTML5 et le JavaScript le JSON est devenu une solution de plus en plus populaire pour représenter de la donnée. Les SIG se sont rapidement intéressé au JSON en ajoutant une couche géo devenant alors le GeoJSON. Le JSON présente l'avantage d'être peu verbeux, en opposition au XML, ce qui est un avantage dans la mesure ou les données géographiques sont souvent très denses et demanderaient alors beaucoup de balise pour être représentées en XML. Exemple de fichier GeoJSON:
    										{
    											"type": "Feature",
    											"geometry": {
    												"type": "Point",
    												"coordinates": [125.6, 10.1]
    											},
    											"properties": {
    												"name": "Dinagat Islands"
    											}
    										}
    										
Illustration vecteurs
PostgreSQL
PostGis

Raster

Description

Les données rasters (matricielle en français) sont des images ou l'espace est divisé en rectangle régulier (pixel). A chaque pixel est associé une ou plusieurs valeurs (band) permettant de décrire la donnée.

De manière traditionnelle un raster est constitué de 3 bandes, Rouge, Vert, Bleu, une quatrième peut être ajoutée représentant la transparence (alpha). Il est possible d'obtenir un raster à partir de données vectorielles. Cette transformation permet de limiter le volume des données transférées, cependant on perd en qualité puisque les rasters sont générés pour un niveau de zoom précis, donc si on zoom dessus il est possible de l'image "pixelise".

Provenance

  • En local, il est courant que les rasters à cause des volumes que cela peut engendrer soit stockés en local sur la machine cliente
  • En base de données, aujourd'hui les bases de données spatiale en plus de gérer les données vectorielles sont capables de stockées des données raster et donc il est possible de faire des requêtes sur ces données.
  • Enfin il existe une dernière solution nommé TileLayer, cette technique est une première approche des WebService puisqu'elle consiste via une URL à récupérer une image (raster)
    									http://{s}.domain.com/tile/{z}/{x}/{y}.png
    									
    									// {s} -> Permet de gérer les requêtes parallèles sur un même domaine. 
    									// {s} peut prendre 3 valeurs a, b ou c, il n'est pas obligatoire et peut donc être supprimé.
    									// L'ensemble des outils sur le marché ne gèrent pas encore l'utilisation du {s}
    
    									// {z} -> Zoom
    									// {x} -> Coordonnées X
    									// {y} -> Coordonées Y
    									
raster VS vector

Web Service

La plupart du temps dans le cadre d'une application web cartographique on utilise des WebService pour récupérer les données à afficher. Les WebService permettent de récupérer les deux types de données décrites ci-dessus.
Afin d'économiser la bande passante et d'accélérer les temps de chargement la plupart du temps on cherche à récupérer des images au format PNG.

Les principaux WebServices définit par l'OGC (Open Geospatial Consortium) :

  • WMS - Web Map Service
    Permet de récupérer une image à afficher
    										http://host§path?{name=value&}
    									
    • REQUEST -> GetCapabilities, GetMap, GetFeatureInfo
      Permet de définir le type de requête voulue
    • OUTPUTFORMAT -> Permet de définir le format dans lequel on souhaite récupérer l'image (ex: image/png)
    • BBOX -> Permet de définir l'étendue de la carte
    • WIDTH -> Permet de définir la largeur de l'image
    • HEIGHT -> Permet de définir la hauteur de l'image
    • LAYERs -> Permet de choisir la liste des couches souhaitées
    • STYLES -> Permet de faire la liste des styles à appliquer aux layers
  • WMTS - Web Map Tile Service
    Permet de récupérer des images à afficher mais sous forme de tuile c'est à dire que l'ensemble de la zone à afficher est découpée en plusieurs images
  • WFS - Web Feature Service
    Permet de récupérer de la donnée vectorielle, toutes les API web du marché ne supporte pas le WFS
Open Geospatial Consortium

Image CFA