Geospatial – Actualités

Génération et gestion des tuiles cartographiques

22 août 2013

La génération et la gestion de tuiles cartographiques sont des processus complexes. Dans cet article, nous décrivons les principaux challenges qu’il faut relever en matière de tuiles afin que votre projet soit un succès.

Durant ces dernières années, Camptocamp a mis au point une méthodologie ainsi que développé des outils pour générer et gérer les tuiles de manière optimale. De nombreux cas d’utilisation nous ont été soumis. Sur la base de notre expérience, nous identifions 5 principaux challenges que nous détaillons dans cet article :

  • Gestion du cache de tuiles
  • Temps de génération des tuiles
  • Stockage des tuiles
  • Diversité des infrastructures de données géographiques
  • Mise à jour des tuiles

Gestion du cache de tuiles

Le principe fondamental de l’utilisation de tuiles est de pouvoir utiliser différents mécanismes de mise en cache pour optimiser les performances d’une application internet.

Le monde géospatial, via l’OGC, s’est accordé sur un standard nommé Web Map Tile Service (ou WMTS) pour diffuser des cartes géoréférencées tuilées à partir d’un serveur de données sur le réseau. Des efforts précédents de standardisation ont eu lieu au sein de l’OSGeo avec la proposition WMS Tile Caching (ou WMS-C) ou encore la spécification Tile Map Service (TMS).

La création de tuiles cartographiques, plutôt que de se baser sur des requêtes dynamiques impliquant une forte consommation des ressources serveur, des latences dans l’application et des risques liés à la montée en charge, permet de maîtriser complètement ces aspects pour autant que l’on prenne en compte les différents niveaux de mise en cache des tuiles :

  • dans l’espace de stockage original ;
  • dans les proxy intermédiaires ;
  • dans le navigateur.

Pour optimiser les performances et réduire la bande passante, on cherchera à stocker les tuiles dans les différents niveaux de cache, ce qui implique d’être en mesure d’invalider ces caches lorsque des modifications sont apportées aux données sources. Différentes techniques existent, de la définition d’un paramètre de durée de vie de la tuile à la possibilité, par l’utilisation d’un token, de piloter finement le basculement entre 2 versions d’un même jeu de tuiles.

Temps de génération des tuiles

Lorsqu’il s’agit de générer des tuiles sur un très grand périmètre ou lorsque l’on veut atteindre un niveau de détail très élevé, le nombre de tuiles à générer devient immense ce qui implique un temps de génération très/trop long si l’on ne met pas en place une stratégie adéquate :

  • pour les données vectorielles, on ne générera des tuiles que lorsque de l’information est présente. Cela évite de générer des tuiles sans contenu qui ne seraient que transparentes ou blanches.
  • distribution du travail à plusieurs serveurs et utilisation d’un système de gestion des files d’attente (tel que Amazon Simple Queue Service – SQS -) pour répartir le travail entre les serveurs.
  • lorsque la fréquentation du site le permet, génération des derniers niveaux de zoom à la volée tout en protégeant le serveur cartographique d’un trop grand nombre de requêtes simultanées en utilisant un proxy faisant du méta-tiling.

Stockage des tuiles

La grande quantité de tuiles générées doit être stockée. Cela pose plusieurs problèmes en terme de disque :

  • les disques durs classiques et systèmes de fichiers ne sont pas prévus pour stocker un nombre extrêmement élevé de fichiers. Une configuration particulière est nécessaire, notamment en matière de gestion des index.
  • la copie de tuiles d’un serveur à un autre peut dans certains cas prendre un tel temps que cela rend la copie pratiquement impossible. Il est essentiel de stocker les données directement dans un endroit définitif.
  • le backup d’une grande quantité de tuiles, lorsque possible (cf point précédent), prend du temps et démultiplie la quantité d’espace disque nécessaire. Il est ainsi essentiel de disposer d’un espace de stockage persistant et redondant (tel que Amazon S3) ou d’être en mesure de regénérer, le cas échéant, les tuiles rapidement.

Diversité des infrastructures de données géographiques

  • les solutions cloud computing offrent des outils de stockage persistant, redondant et des disques virtuels sans limitation du nombre ou de la taille des fichiers stockés ce qui est la solution idéale.
  • des outils d’administration automatisée de serveurs doivent permettre la mise en place extrêmement rapidement des serveurs pour disposer temporairement, lorsque cela est nécessaire, de la force de calcul adéquate.
  • les infrastructures internes sont cependant encore largement diffusées et il doit aussi être possible de gérer des tuiles sur un serveur classique (Linux ou Windows).
  • en fonction de l’infrastructure à disposition, différents conteneurs de tuiles peuvent être adéquats (disque cloud virtuel, fichier unique, arborescence de fichiers, base de donnée SQL, base de donnée NoSQL).
  • différents systèmes de (méta)tiling sont disponibles, souvent disponibles en fonction des environnements privilégiés (C, Java, Python).

Mise à jour des tuiles

La mise à jour des tuiles est une problématique fréquente étroitement liée aux points précédents, en fonction de la quantité de tuiles, du temps à disposition pour effectuer la mise à jour, de l’infrastructure utilisée et des stratégies de mise en cache employées :

  • pour être efficace, lorsque le nombre de tuiles est important ou lorsque les mises à jour sont fréquentes, il faut pouvoir ne mettre à jour que les tuiles qui ont effectivement changé. Pour cela, établir la liste des différences entre les deux versions des jeux de données est essentiel et le système de mise à jour des tuiles doit en tenir compte.
  • le stockage des tuiles doit être centralisé afin de ne pas devoir procéder à de multiples mises à jour des différents conteneurs avec les risques y relatifs de désynchronisation des tuiles.
  • après une mise à jour, il faut être en mesure d’invalider les différents caches pour que tuiles consultées correspondent effectivement à la dernière version.

Camptocamp offre des prestations de conseil, de formation, de support ou d’implémentation en matière de génération et de gestion des tuiles. N’hésitez pas à nous contacter afin de nous soumettre votre challenge : geospatial@camptocamp.com