Table des matières

Web Map Tile Service (WMTS)

Le WMTS, pour Web Map Tile Service, est un standard décrivant la manière de diffuser des données cartographiques sous forme de tuiles prédéfinies.

WMTS est un complément à Web Map Service (WMS). Par rapport à WMS, WMTS a pour avantage principal d’offrir de meilleures performances dans la diffusion données cartographiques. Le revers de la médaille est une moins grande flexibilité que le WMS. WMTS n’est ainsi pas recommandé quand les données sont mises à jour de manière très fréquentes ou quand il est nécessaire d’offrir une symbologie à la demande.

Le fait de prégénérer les tuiles implique que les niveaux de zoom et la symbologie sont définis à l’avance et ne peuvent être modifiés à la demande.

Un exemple de visualisateur utilisant un service WMTS pour diffuser les images aériennes. La librairie OpenLayers permet l’affichage des données.

Les requêtes WMTS

WMTS supporte 3 requêtes, à savoir GetCapabilities, GetTile et GetFeatureInfo. Les 2 premières sont obligatoires, alors que GetFeatureInfo est optionnelle.

GetCapabilities

La requête GetCapabilities a pour but de renseigner sur le contenu du service WMTS. Celle-ci peut se faire selon 3 langages différents.

GetCapabilities selon KVP

Un exemple de requête selon KVP est: http://www.maps.bob/maps.cgi?service=WMTS&version=1.0.0&request=GetCapabilities
Les paramètres service, version et request sont envoyés au serveur. Celui-ci envoie un fichier XML qui contient les informations sur le service WMS.

GetCapabilities selon SOAP

Une requête selon SOAP pour GetCapabilities est faite en mode “POST”. Un exemple de fichier XML envoyé est:

<?xml version="1.0" encoding="UTF-8"?>
  <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Body>
     <GetCapabilities service="WMTS" xmlns="http://www.opengis.net/ows/1.1">     
        <AcceptVersions> <Version>1.0.0</Version> </AcceptVersions>
        <AcceptFormats> <OutputFormat>application/xml</OutputFormat> </AcceptFormats>   
     </GetCapabilities>
  </soap:Body>
</soap:Envelope>

La réponse à cette requête se présente sous la forme d’un fichier XML structuré selon SOAP qui contient les informations sur le service WMTS.

GetCapabilities selon REST

Une requête selon REST pour GetCapabilities est faite en mode “GET”. Un exemple d’URL est : http://www.maps.bob/1.0.0/WMTSCapabilities.xml

On retrouve dans cet URL un numéro de version du service, une requête (WMTSCapabilities) et une extension qui indique le format de retour.

La réponse à cet URL est un fichier XML qui contient les informations sur le service WMTS.

GetTile

La requête GetTile permet à un client WMTS de demander une tuile, ceci pour une certaine pyramide d’une certaine couche et selon un certain format. Le service WMTS renvoie la tuile demandée. La requête GetTile peut se faire en plusieurs langages.
GetTile selon KVP

Plusieurs paramètres peuvent être envoyés au serveur WMTS:

Représentation d’un Tile Matrix Set contenant plusieurs Tile Matrix

Représentation d’un Tile Matrix Set contenant plusieurs Tile Matrix

Représentation d’une Tile Matrix avec son origine en haut à gauche

Représentation d’une Tile Matrix avec son origine en haut à gauche

Un exemple de requête selon KVP est :

http://www.maps.bob/maps.cgi?service=WMTS&request=GetTile&version=1.0.0&layer=etopo2&style=default&format=image/png&TileMatrixSet=WholeWorld_CRS_84&TileMatrix=10m&TileRow=1&TileCol=3

On retrouve dans cette requête les différents paramètres définis précédemment. Aucune dimension n’a été précisée dans ce cas. La réponse à cette requête est une tuile, donc une image, de format PNG.

GetTile selon SOAP

Dans un context web, cette solution fait peu de sens car une réponse selon SOAP implique l’encapsulation des données images dans un fichier XML, chose peu logique et peu efficace. C’est pourquoi cette possibilité n’est pas présentée ici.

GetTile selon REST

Une requête selon REST pour GetTile est faite en mode “GET”. Un exemple d’URL est:
http://www.maps.bob/etopo2/default/WholeWorld_CRS_84/10m/1/3.png

Par rapport à une requête selon KVP, les paramètres sont simplement ordonnés dans l’URL. Cette manière de faire correspond aux principes mêmes du web, à savoir l’accès à des ressources à travers des URL, et est de ce fait la manière la plus efficace pour diffuser des tuiles.

GetFeatureInfo

La requête GetFeatureInfo, optionnelle, permet à un client WMTS de demander une information sur un objet présent à une certain position dans une tuile. Le service WMTS renvoie les informations demandées. La requête GetFeatureInfo peut se faire en plusieurs langages.

GetFeatureInfo selon KVP

En plus des paramètres de la requête GetTile, 3 noouveaux paramètres font leur appraition:

  I: la position du pixel de la tuile,selon l’axe des abcisses.
  J: la position du pixel de la tuile,selon l’axe des ordonnées.
  InfoFormat: le format dans lequel les informations sur les objets sont renvoyés.

Un exemple de requête selon KVP est :
http://www.maps.bob/maps.cgi?service=WMTS&request=GetFeatureInfo&version=1.0.0&layer=coastlines&style=default&format=image/png&TileMatrixSet=WholeWorld_CRS_84&TileMatrix=10m&TileRow=1&TileCol=3&J=86&I=132&InfoFormat=application/gml+xml; version=3.1
On constate que l’on définit la tuile ainsi que la position d’un pixel au sein de cette tuile.

Un exemple de réponse est:

<code>
<?xml version=“1.0” encoding=“UTF-8”?>

<ReguralGriddedElevations xmlns="http://www.maps.bob/etopo2" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.maps.bob/etopo2 GetFeatureInfoExampleSchema.xsd"> <featureMember>
<GridPoint_etopo2>
   <elevation>503.0</elevation>
   <TileRow>1</TileRow>
   <TileCol>2</TileCol>
   <J>86</J>
   <I>132</I>
</GridPoint_etopo2>

</featureMember>
</ReguralGriddedElevations>
</cdoe>

Cette reponse permet de connaître l’altitude d’un certain point de la tuile.

GeatureInfo selon SOAP

Une requête selon SOAP pour GetFeatureInfo est faite en mode “POST”. La réponse à cette requête se présente sous la forme d’un fichier XML structuré selon SOAP qui contient les informations sur la position demandée.

GetFeatureInfo selon REST

Une requête selon REST pour GetFeatureInfo est faite en mode “GET”. Un exemple d’URL est:

http://www.maps.bob/etopo2/default/WholeWorld_CRS_84/10m/1/3/86/132.xml

Par rapport à la requête GetTile, cette URL est complétée des informations sur la position au sein de la tuile ainsi que du format dans lequel les informations sont renvoyées.

Bibliographie