15 puntos por GN⁺ 2026-01-27 | 1 comentarios | Compartir por WhatsApp
  • MapLibre Tile (MLT) es un nuevo formato de teselas vectoriales de próxima generación que reemplaza a Mapbox Vector Tile (MVT), diseñado para mejorar la eficiencia en el procesamiento de grandes volúmenes de datos geoespaciales
  • Ofrece hasta 6 veces mejor compresión y rápido rendimiento de decodificación basado en SIMD, mejorando el espacio de almacenamiento, la latencia y la eficiencia del caché
  • Está diseñado para poder expandirse en el futuro con soporte para coordenadas 3D (elevación), procesamiento basado en GPU, tipos de datos compuestos, referencia lineal y m-values
  • Ya puede usarse de inmediato en MapLibre GL JS y MapLibre Native, con soporte para teselas de demostración, servidor de conversión y generación mediante Planetiler
  • Es un formato desarrollado mediante la colaboración entre la comunidad open source, empresas y el ámbito académico, y fue completado con patrocinio de Microsoft y AWS

Introducción a MapLibre Tile

  • MapLibre Tile (MLT) es el formato sucesor de [Mapbox Vector Tile(MVT)] y fue rediseñado desde cero para manejar el creciente volumen de datos geoespaciales y los formatos fuente complejos de próxima generación

    • Fue diseñado para aprovechar el rendimiento del hardware moderno y de las API gráficas, permitiendo procesar y renderizar con alto desempeño mapas base 2D y 2.5D a escala planetaria
    • La implementación actual es funcionalmente equivalente a MVT, pero mejora en rendimiento y eficiencia
  • Principales mejoras técnicas

    • Mejor compresión: hasta 6 veces de mejora en teselas grandes, aplicando un diseño orientado a columnas y codificación ligera recursiva
    • Mejor rendimiento de decodificación: una estructura de codificación rápida y ligera que puede combinarse con instrucciones SIMD/vectorizadas
    • Como resultado, se logra menor latencia, reducción de costos de almacenamiento y transferencia y mejor aprovechamiento del caché

Posibilidades de expansión futura

  • MLT fue diseñado pensando en dar soporte a las siguientes capacidades futuras

    • Mayor soporte para coordenadas 3D (elevación)
    • Optimización de formatos de almacenamiento y memoria para un procesamiento eficiente en CPU y GPU
    • Soporte para referencia lineal (linear referencing) y m-values, para compatibilidad con formatos de próxima generación como Overture Maps (GeoParquet)
    • Soporte para tipos compuestos como propiedades anidadas, listas y mapas
  • La dirección de evolución de MLT se determinará según las necesidades de la comunidad, y se reciben con interés distintas ideas de extensión y contribuciones

    • Como materiales relacionados se ofrecen las diapositivas de la charla FOSS4G 2024 de Markus Tremmel, una charla en YouTube y un artículo de ACM

Disponibilidad e integración

  • MLT ya está disponible para usarse de inmediato

    • Tanto MapLibre GL JS como MapLibre Native admiten fuentes MLT
    • Puede usarse indicando el valor mlt en la propiedad encoding del JSON de estilo
  • Cómo probarlo y desarrollarlo

  • Para compartir experiencias usando MLT, se recomienda participar en el canal #maplibre-tile-format de Slack o en los issues/discussions de GitHub

Agradecimientos y colaboración

  • MLT fue desarrollado mediante años de colaboración entre la academia, el open source y empresas
    • Markus Tremmel ideó el formato, y Yuri Astrakhan lideró el proyecto
    • Tim Sylvester se encargó de la implementación en C++, mientras que Harel Mazor, Benedikt Vogl y Niklas Greindl trabajaron en la implementación en JavaScript
    • Microsoft y AWS financiaron el desarrollo

Nota

  • A diferencia de MVT, MLT no admite capas donde el tipo de los valores dentro de una columna varía según el feature

1 comentarios

 
GN⁺ 2026-01-27
Comentarios en Hacker News
  • Recomiendo asistir a la charla de MapLibre en el geospatial devroom de FOSDEM este sábado
    Enlace al programa del evento

    • Iría sin falta si hubiera lugar 😄
  • Estuve revisando un poco las páginas de ejemplo y comparé el ejemplo de mostrar un mapa con MLT con el ejemplo existente de mostrar un mapa
    Viendo los logs de la consola, confirmé una mejora de compresión de alrededor del 10%. Bastante impresionante

    • Aun así, el estilo de tiles del demo es difícil de comparar con un basemap de producción basado en OpenMapTiles real
      El formato MLT trae incorporadas varias codificaciones ligeras, y hasta se puede codificar cada tile de forma distinta
      Por eso hace falta un enfoque heurístico para encontrar la mejor combinación, y existe un trade-off entre tamaño del tile y rendimiento de decodificación
      Todavía está en una etapa temprana, pero AWS sigue patrocinando el trabajo de optimización de MLT este año, así que todavía hay mucho margen de mejora
      Al hacer benchmarks, es más importante mirar los patrones de uso reales que el tamaño total de los tiles: nadie hace zoom en medio del océano 😉
  • Hace poco desplegué una solución basada en pmtiles y la verdad estoy muy satisfecho
    Vean la documentación de PMTiles
    pmtiles usa MVT, pero espero que en el futuro salgan herramientas para convertirlo a MLT

    • En realidad PMTiles es independiente del formato de tile. Ya hay un PR para actualizar el byte de tipo e incluir MLT
    • PMTiles puede contener no solo MVT, sino también PNG, JPEG, WebP, AVIF y otros formatos. Vean la documentación de la especificación
    • Yo estoy construyendo PMTiles con Tilemaker, y para generar MLT con Tilemaker probablemente haría falta bastante trabajo 😅
    • pmtiles es de verdad una solución simple pero innovadora
  • MapLibre es la mejor librería JS que he usado hasta ahora para mostrar mapas en el navegador
    Me emociona pensar en el cambio al nuevo formato

    • Totalmente de acuerdo 👍
  • En Planetiler se puede generar MLT con la opción de CLI --tile-format=mlt
    Por ahora solo está en la rama main, pero pronto saldrá en una release
    En las pruebas, con la configuración por defecto, el tamaño del archivo OpenMapTiles bajó alrededor de un 10%. También se están haciendo más optimizaciones

  • Lamentablemente Tilemaker no tiene planes de soportar MLT a mediano plazo
    Así que parte de la comunidad podría quedar fuera de la transición
    Vean este hilo del issue

    • Aun así, más adelante sí se podrá convertir. Hay un programa de conversión en Java de MVT a MLT en el repositorio
  • Es interesante que los formatos de archivos vectoriales todavía se sigan reinventando
    Entiendo las mejoras en compresión o velocidad de decodificación, pero me da curiosidad cuál fue la idea nueva o insight que impulsó este diseño

  • Llevo tiempo siguiendo este proyecto y la verdad me entusiasma bastante
    Desde la perspectiva de un usuario del stack de MapLibre, creo que la última gran tarea pendiente es agregar una función As_MLT() a PostGIS

    • Y también hace falta soporte en Geoserver
  • ¿Alguien aquí hace self-hosting de mapas? Me interesan los pros, los contras y qué herramientas usan

    • Nosotros llevamos años haciendo self-hosting de protomaps (pmtiles)
      El servidor solo necesita poder servir archivos estáticos con range requests (sirve tanto Caddy como Nginx)
      El mapa es un solo archivo grande, así que también es fácil compartirlo entre varios servidores
      Casi no hay desventajas, aunque sí hay que agregar del lado del cliente una librería con soporte para protocolo personalizado
      Editar estilos es un poco más complicado, pero se puede cargar y modificar un estilo de protomaps con el editor Maputnik
      Vean la guía
    • Yo también hago self-hosting de un mapa localizador de tiendas en Australia con pmtiles
      Hice por separado un mapa mundial de baja resolución (50MB) y uno de Australia en alta resolución (900MB), y los subí a S3
      Como no necesito datos actualizados, los dejo así y funciona muy bien
    • En un proyecto para producir mapas de alta resolución para impresión, el self-hosting también fue la única solución viable
      Las APIs comerciales tenían un costo demasiado alto para generar raster a 300dpi o restricciones para revenderlo
    • Yo también hago self-hosting. La ventaja es que puedes controlar totalmente los datos y el stack, y la desventaja es que te toca montar el stack y administrar la nube por tu cuenta
      Guardo y sirvo vector tiles con PostGIS, y almaceno los datos ráster en AWS S3 en formato GeoTiff COG
    • Nosotros usamos mod_tile+renderd
      Construimos el pbf de OSM para el área de interés (Colorado), levantamos el contenedor openstreetmap-tile-server y luego aplicamos el estilo para renderizar con renderd
  • MLT también está genial, pero ojalá hubiera avances así en los formatos de tiles 3D
    Ahora mismo 3D Tiles de Cesium es prácticamente la única opción, pero el rendimiento no es tan rápido como uno esperaría