15 points par GN⁺ 2026-01-27 | 1 commentaires | Partager sur WhatsApp
  • MapLibre Tile (MLT) est un nouveau format de tuiles vectorielles de nouvelle génération destiné à remplacer Mapbox Vector Tile (MVT), conçu pour améliorer l’efficacité du traitement des données géospatiales à grande échelle
  • Il offre un taux de compression jusqu’à 6 fois supérieur ainsi qu’un décodage rapide basé sur SIMD, ce qui améliore l’espace de stockage, la latence et l’efficacité du cache
  • Il est extensible avec pour objectif la prise en charge future des coordonnées 3D (altitude), du traitement basé sur GPU, des types de données composites, du référencement linéaire et des m-values
  • Il peut être utilisé immédiatement avec MapLibre GL JS et MapLibre Native, avec des demo tiles, un serveur de conversion et la prise en charge de la génération via Planetiler
  • Ce format a été développé grâce à la collaboration de la communauté open source, d’entreprises et du monde académique, et finalisé avec le soutien de Microsoft et d’AWS

Présentation de MapLibre Tile

  • MapLibre Tile (MLT) est le format successeur de [Mapbox Vector Tile (MVT)], entièrement repensé dès le départ pour faire face à la croissance rapide du volume de données géospatiales et à la complexité des formats sources de nouvelle génération

    • Conçu pour exploiter les performances du matériel moderne et des API graphiques, il permet de traiter et de rendre avec de hautes performances des fonds de carte 2D et 2.5D à l’échelle planétaire
    • L’implémentation actuelle est fonctionnellement équivalente à MVT, tout en apportant des améliorations en matière de performances et d’efficacité
  • Principales améliorations techniques

    • Compression améliorée : jusqu’à 6 fois mieux sur les grandes tuiles, grâce à une disposition orientée colonnes et à un encodage léger récursif
    • Performances de décodage accrues : une structure d’encodage rapide et légère, compatible avec les instructions SIMD/vectorisées
    • Au final : latence réduite, baisse des coûts de stockage et de transfert, et meilleure utilisation du cache

Possibilités d’extension futures

  • MLT a été conçu en anticipant la prise en charge des fonctionnalités futures suivantes

    • Renforcement de la prise en charge des coordonnées 3D (altitude)
    • Optimisation des formats de stockage et mémoire pour un traitement efficace sur CPU et GPU
    • Prise en charge du référencement linéaire (linear referencing) et des m-values pour assurer la compatibilité avec des formats de nouvelle génération comme Overture Maps (GeoParquet)
    • Prise en charge de types composites comme les attributs imbriqués, listes et maps
  • L’évolution de MLT sera déterminée par les besoins de la communauté, et diverses idées d’extension et contributions sont les bienvenues

    • Parmi les ressources disponibles figurent les slides de la présentation FOSS4G 2024 de Markus Tremmel, une conférence YouTube et un article ACM

Disponibilité et intégration

  • MLT est disponible dès maintenant

    • MapLibre GL JS et MapLibre Native prennent tous deux en charge les sources MLT
    • Il peut être utilisé en définissant la valeur mlt pour la propriété encoding dans le JSON de style
  • Essais et développement

  • Pour partager des retours d’expérience sur MLT, il est recommandé de participer au canal Slack #maplibre-tile-format ou aux issues/discussions GitHub

Remerciements et collaboration

  • MLT a été développé grâce à plusieurs années de collaboration entre le monde académique, l’open source et les entreprises
    • Markus Tremmel a conçu le format, et Yuri Astrakhan a dirigé le projet
    • Tim Sylvester a réalisé l’implémentation C++, tandis que Harel Mazor, Benedikt Vogl et Niklas Greindl se sont chargés de l’implémentation JavaScript
    • Microsoft et AWS ont financé le développement

Notes

  • Contrairement à MVT, MLT ne prend pas en charge les couches où le type des valeurs dans une colonne varie selon les entités

1 commentaires

 
GN⁺ 2026-01-27
Avis sur Hacker News
  • Je recommande d’assister à la présentation de MapLibre qui aura lieu samedi dans le devroom Geospatial à la FOSDEM
    Lien vers le programme de l’événement

    • J’aimerais vraiment y aller s’il reste de la place 😄
  • J’ai cherché un peu la page d’exemple et comparé l’exemple d’affichage de carte avec MLT avec l’exemple d’affichage de carte existant
    En regardant les logs de la console, j’ai constaté une amélioration de la compression d’environ 10 %. C’est assez impressionnant

    • Cela dit, le style de tuiles de la démo est difficile à comparer à une vraie basemap de production basée sur OpenMapTiles
      Le format MLT intègre plusieurs encodages légers et il est même possible d’utiliser un encodage différent selon la tuile
      Il faut donc une approche heuristique pour trouver la meilleure combinaison, avec un compromis entre taille des tuiles et performances de décodage
      C’est encore un stade précoce, mais AWS finance aussi l’optimisation de MLT cette année, donc il y a encore beaucoup de marge de progression
      Lors d’un benchmark, il est plus important d’observer les usages réels que la taille totale des tuiles — personne ne zoome au milieu de l’océan 😉
  • J’ai récemment déployé une solution basée sur pmtiles et j’en suis vraiment satisfait
    Voir la documentation PMTiles
    pmtiles utilise MVT, mais j’espère qu’un outil permettant une conversion vers MLT verra le jour

    • En réalité, PMTiles est indépendant du format de tuile. Une PR a déjà été soumise pour mettre à jour l’octet de type afin d’inclure MLT
    • PMTiles peut contenir non seulement du MVT, mais aussi des formats comme PNG, JPEG, WebP, AVIF, etc. Voir la spécification
    • J’utilise Tilemaker pour construire des PMTiles, mais générer du MLT avec Tilemaker demanderait sans doute pas mal de travail 😅
    • pmtiles est vraiment une solution simple et innovante
  • MapLibre est la meilleure bibliothèque JS que j’ai utilisée jusqu’ici pour afficher des cartes dans le navigateur
    J’ai hâte de voir la transition vers ce nouveau format

    • Entièrement d’accord 👍
  • Dans Planetiler, il est possible de générer du MLT avec l’option CLI --tile-format=mlt
    Pour l’instant, c’est uniquement sur la branche main, mais une release est prévue bientôt
    Les tests montrent qu’avec les paramètres par défaut, la taille de l’archive OpenMapTiles diminue d’environ 10 %. D’autres optimisations sont en cours

  • Malheureusement, Tilemaker ne prévoit pas de supporter MLT à moyen terme
    Une partie de la communauté risque donc d’être laissée de côté dans cette transition
    Voir le fil de discussion de l’issue

    • Une conversion restera quand même possible plus tard. Il existe dans le dépôt un programme de conversion Java pour passer de MVT à MLT
  • Je trouve intéressant que les formats de fichiers vectoriels continuent encore à être réinventés
    Je comprends l’intérêt d’un meilleur taux de compression ou d’une vitesse de décodage plus élevée, mais je me demande quelles sont les nouvelles idées ou intuitions qui ont guidé cette conception

  • Je suis ce projet depuis quelque temps et il me semble vraiment prometteur
    En tant qu’utilisateur de la stack MapLibre, je pense que le dernier grand chantier sera l’ajout d’une fonction As_MLT() dans PostGIS

    • Et il faudra aussi une prise en charge de GeoServer
  • Est-ce que certains ici font de l’auto-hébergement de cartes ? Je serais curieux de connaître les avantages, les inconvénients et les outils utilisés

    • Nous auto-hébergeons protomaps (pmtiles) depuis plusieurs années
      Le serveur doit simplement pouvoir servir des fichiers statiques avec des range requests (Caddy comme Nginx conviennent)
      La carte est un seul gros fichier, donc elle est aussi facile à partager entre plusieurs serveurs
      Il n’y a presque pas d’inconvénients, mais il faut ajouter côté client une bibliothèque de prise en charge d’un protocole personnalisé
      L’édition des styles est un peu délicate, mais on peut charger et modifier des styles protomaps avec l’éditeur Maputnik
      Voir le guide de démarrage
    • Moi aussi, j’auto-héberge avec pmtiles une carte de localisation de magasins en Australie
      J’ai créé séparément une carte basse résolution du monde entier (50 MB) et une carte haute résolution de l’Australie (900 MB), puis je les ai envoyées sur S3
      Je n’ai pas besoin de données à jour, donc je les laisse telles quelles, et ça fonctionne très bien
    • Pour un projet de création de cartes haute résolution destinées à l’impression, l’auto-hébergement était aussi la seule solution viable
      Les API commerciales avaient soit un coût trop élevé pour générer des rasters en 300dpi, soit des restrictions sur la revente
    • J’auto-héberge aussi. L’avantage, c’est de contrôler entièrement les données et la stack ; l’inconvénient, c’est qu’il faut construire soi-même la stack et gérer le cloud
      J’utilise PostGIS pour stocker et servir les tuiles vectorielles, et j’enregistre les données raster sur AWS S3 au format GeoTiff COG
    • Nous utilisons mod_tile+renderd
      Nous construisons le PBF OSM pour notre zone d’intérêt (le Colorado), lançons le conteneur openstreetmap-tile-server, puis appliquons le style et effectuons le rendu avec renderd
  • MLT est sympa, mais j’aimerais aussi voir ce genre d’avancées sur les formats de tuiles 3D
    À l’heure actuelle, 3D Tiles de Cesium est pratiquement le seul choix possible, et ses performances ne sont pas aussi bonnes qu’espéré