Accueil / Blog / Métier / 2014 / Stockage de tuiles : comprendre WMTS et TMS

Stockage de tuiles : comprendre WMTS et TMS

Par Isabelle Vallet — publié 20/01/2014
Le stockage des tuiles sous forme z/x/y peut se faire selon deux schémas, qui infuent sur la valeur en ordonnées.

Un problème ordinaire

Dans un premier temps, j'ai souhaité télécharger des tuiles vectorielles au format GeoJSON. Grâce à Landez, elles ont été stockées sur mon disque, sous la forme {z}/{x}/{y}.json. Cependant, au moment d'afficher leur contenu avec Leaflet, les tuiles sélectionnées ne semblaient pas présentes.

En réalité, la valeur y n'était pas bonne. Il s'agit d'un problème récurrent dans le monde de la cartographie en ligne : la confusion entre le stockage des tuiles selon les grilles utilisées par TMS et WMTS !

Quelques explications

TMS et WMTS sont des services permettant l'accès à des données tuilées, et doivent donc (entre autres) normaliser un chemin d'accès, fonction des valeurs x et y pour un niveau de zoom donné. Pour les coordonnées des tuiles, l'origine et le sens des ordonnées sur la grille diffèrent :

tms
Standard TMS
wmts
Standard WMTS


Aujourd'hui, si le schéma de stockage, "y descendant", défini par standard WMTS de l'Open Geospatial Consortium tend à s'imposer (c'est celui utilisé par OpenStreetMap, Google Maps, Bing, ainsi que les interfaces de MapBox comme TileMill ou même mbutil), celui de TMS, "y ascendant", reste utilisé, notamment pour le stockage de la pyramide de tuiles du MBTiles. Landez a été écrit aux débuts de ce format dans le but de récupérer des tuiles d'un serveur distant pour être placées dans un MBTiles grâce à mbutil. Il avait donc tendance à préférer le schéma de TMS.

Spécifications de TMS et WMTS

  • TMS (Tile Map Service)
  • WMTS (Web Map Tile Service)

Passer d'un schéma à l'autre, concrétement :

Rappelons que le changement de système TMS/WMTS ne va modifier que la valeur y (z et x ne sont pas impactés).

Le nombre de valeurs que peut prendre y à un niveau de zoom z vaut : nb_y = 2z (en effet, lorsqu'on gagne un niveau de zoom, nb_y est multiplié par deux).
On a donc : y ∈ [0, nb_y - 1]
Ainsi, la conversion de y vers y' donne : y' = ymax - y = nb_y - 1 - y

Un exemple :

Pour passer des schémas TMS à WMTS (ou l'inverse) pour la tuile à z = 4, x = 2, y = 5 :

conversion_tms_wmts
Tuile z = 4, x = 2, yTMS = 5

  • z vaut bien évidemment toujours 4
  • x reste inchangé et a pour valeur 2
  • nb_y = 24 = 16, donc y ∈ [0, 15]
  • yTMS = 5 donc yWMTS = 15 - 5 = 10

Un problème résolu

Landez a désormais une option pour stocker le cache au format WMTS !

ABONNEZ-VOUS À LA NEWSLETTER !
Voir aussi
Optimisation de la production de tuiles vectorielles de fond de carte OpenStreetMap pour un service à la demande : Makina Maps Optimisation de la production de tuiles vectorielles de fond de carte OpenStreetMap pour un service à la demande : Makina Maps 04/02/2020

Frédéric Rodrigo, expert OpenStreetMap, présente Makina Maps, une solution permettant de servir ...

Extraction d'objets pour la cartographie par deep-learning : création d'une vérité terrain Extraction d'objets pour la cartographie par deep-learning : création d'une vérité terrain 20/05/2020

Cette série d'articles parle de cartographie par deep-learning à partir d'images aériennes ou ...

Extraction d'objets pour la cartographie par deep-learning : choix du modèle Extraction d'objets pour la cartographie par deep-learning : choix du modèle 04/06/2020

Deuxième article de la série sur la cartographie par deep-learning à partir d'images aériennes ...

Extraction d'objets pour la cartographie par deep-learning : évaluation du modèle Extraction d'objets pour la cartographie par deep-learning : évaluation du modèle 18/06/2020

Voici le dernier article de notre série sur la cartographie par deep-learning. Après avoir ...

Une Cagnotte reversée à la fondation OpenStreetMap a été organisée par Makina Corpus lors du Paris Open Source Summit ! Une Cagnotte reversée à la fondation OpenStreetMap a été organisée par Makina Corpus lors du Paris Open Source Summit ! 28/01/2020

Les 10 et 11 décembre derniers, Makina Corpus était présente à la 5ème édition du Paris Open ...