Makina Blog

Le blog Makina-corpus

Stockage de tuiles : comprendre WMTS et TMS


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 :


Standard TMS

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 :

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 !

Formations associées

Formations SIG / Cartographie

Formation QGIS

À distance (FOAD) Du 2 au 6 décembre 2024

Voir la formation

Formations Django

Formation Django avancé

À distance (FOAD) Du 9 au 13 décembre 2024

Voir la formation

Formations SIG / Cartographie

Formation Leaflet

Toulouse Du 4 au 5 décembre 2024

Voir la formation

Actualités en lien

Image
SIG_cartographie_Deeplearning
08/06/2020

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

Voici le dernier article de notre série sur la cartographie par deep-learning. Après avoir expliqué comment choisir et utiliser un modèle d'extraction d'objets, nous allons maintenant en évaluer les performances. Que pouvons-nous attendre du modèle entraîné ? Quels sont ses limites et ses sensibilités ?

Voir l'article
Image
image avec le résultat de prédiction
02/06/2020

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

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

Voir l'article
Image
geolabel-maker
18/05/2020

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

Cette série d'articles parle de cartographie par deep-learning à partir d'images aériennes ou satellitaires. Dans ce 1er article, l'étape préliminaire à toute utilisation d'un modèle d'apprentissage supervisé est abordée: la création du jeu de données d'apprentissage. Notre outil geolabel-maker est mis à votre disposition pour vous aider.

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus