15 Punkte von GN⁺ 2026-01-27 | 1 Kommentare | Auf WhatsApp teilen
  • MapLibre Tile (MLT) ist ein neues Vektor-Kachelformat der nächsten Generation, das als Ersatz für das bisherige Mapbox Vector Tile (MVT) entwickelt wurde, um die Effizienz bei der Verarbeitung großer Geodatenmengen zu steigern
  • Es bietet eine bis zu 6-fach bessere Komprimierung und schnelle, SIMD-basierte Decoding-Performance, wodurch Speicherbedarf, Latenz und Cache-Effizienz verbessert werden
  • Künftig ist es für 3D-Koordinaten (Höhe), GPU-basierte Verarbeitung, komplexe Datentypen, lineare Referenzierung und m-values erweiterbar
  • Es kann derzeit sofort in MapLibre GL JS und MapLibre Native verwendet werden; unterstützt werden Demo-Kacheln, ein Konvertierungsserver und die Erzeugung über Planetiler
  • Das Format wurde in Zusammenarbeit von Open-Source-Community, Unternehmen und Wissenschaft entwickelt und mit Förderung von Microsoft und AWS fertiggestellt

Einführung in MapLibre Tile

  • MapLibre Tile (MLT) ist ein Nachfolgeformat von [Mapbox Vector Tile(MVT)] und wurde von Grund auf neu entwickelt, um die stark wachsende Menge an Geodaten und komplexe Quellformate der nächsten Generation zu bewältigen

    • Es ist darauf ausgelegt, die Leistung moderner Hardware und Grafik-APIs zu nutzen, sodass 2D- und 2.5D-Basiskarten im Planetenmaßstab mit hoher Performance verarbeitet und gerendert werden können
    • Die aktuelle Implementierung ist funktional gleichwertig zu MVT, wurde jedoch bei Leistung und Effizienz verbessert
  • Wichtige technische Verbesserungen

    • Verbesserte Komprimierung: bei großen Kacheln bis zu 6-fach besser, durch ein spaltenorientiertes Layout und rekursive leichtgewichtige Kodierung
    • Verbesserte Decoding-Performance: schnelle und schlanke Kodierungsstruktur, die sich mit SIMD-/Vektorisierungsbefehlen kombinieren lässt
    • Dadurch ergeben sich geringere Latenz, niedrigere Speicher- und Übertragungskosten und eine bessere Cache-Nutzung

Zukünftige Erweiterbarkeit

  • MLT wurde mit Blick auf die Unterstützung folgender künftiger Funktionen entworfen

    • Erweiterte Unterstützung für 3D-Koordinaten (Höhe)
    • Optimierung von Speicher- und In-Memory-Formaten für effiziente Verarbeitung auf CPU und GPU
    • Unterstützung für lineare Referenzierung (linear referencing) und m-values, um mit Formaten der nächsten Generation wie Overture Maps (GeoParquet) kompatibel zu sein
    • Unterstützung für komplexe Typen wie verschachtelte Attribute, Listen und Maps
  • Die weitere Entwicklung von MLT richtet sich nach den Anforderungen der Community, und verschiedene Erweiterungsideen und Beiträge sind willkommen

    • Als weiterführende Materialien werden die FOSS4G-2024-Präsentationsfolien von Markus Tremmel, ein YouTube-Vortrag und eine ACM-Publikation bereitgestellt

Verfügbarkeit und Integration

  • MLT ist ab sofort einsatzbereit

    • Sowohl MapLibre GL JS als auch MapLibre Native unterstützen MLT-Quellen
    • In der Style-JSON kann dazu der Wert mlt in der Eigenschaft encoding gesetzt werden
  • Ausprobieren und Entwicklung

  • Zum Austausch über Erfahrungen mit MLT wird die Teilnahme am Slack-Kanal #maplibre-tile-format oder an GitHub-Issues/-Discussions empfohlen

Dank und Zusammenarbeit

  • MLT wurde durch mehrjährige Zusammenarbeit zwischen Wissenschaft, Open Source und Unternehmen entwickelt
    • Markus Tremmel entwarf das Format, Yuri Astrakhan leitete das Projekt
    • Tim Sylvester verantwortete die C++-Implementierung, Harel Mazor, Benedikt Vogl und Niklas Greindl die JavaScript-Implementierung
    • Microsoft und AWS stellten die Finanzierung der Entwicklung bereit

Anmerkung

  • Im Unterschied zu MVT unterstützt MLT keine Layer, in denen sich der Typ von Werten innerhalb einer Spalte je nach Feature unterscheidet

1 Kommentare

 
GN⁺ 2026-01-27
Hacker-News-Kommentare
  • Ich empfehle, den MapLibre-Vortrag im Geospatial-Devroom auf der FOSDEM am Samstag zu besuchen
    Link zum Veranstaltungsplan

    • Wenn es Plätze gibt, würde ich unbedingt hingehen 😄
  • Ich habe mir ein paar Beispielseiten angesehen und ein Beispiel zur Kartenanzeige mit MLT mit dem bestehenden Beispiel zur Kartenanzeige verglichen
    Laut den Konsolen-Logs hat sich die Kompressionseffizienz um etwa 10 % verbessert. Ziemlich beeindruckend

    • Allerdings lässt sich der Stil der Demo-Kacheln nur schwer mit einer echten produktionsreifen Basiskarte auf OpenMapTiles-Basis vergleichen
      Das MLT-Format hat verschiedene leichtgewichtige Encodings eingebaut, und Kacheln können jeweils unterschiedlich codiert werden
      Deshalb ist ein heuristischer Ansatz nötig, um die beste Kombination zu finden, und es gibt einen Trade-off zwischen Kachelgröße und Decoding-Performance
      Es ist noch früh, aber AWS fördert auch dieses Jahr wieder die Arbeit an der MLT-Optimierung, daher gibt es noch viel Raum für Verbesserungen
      Beim Benchmarking ist es wichtiger, reale Nutzungsmuster zu betrachten als die Gesamtgröße aller Kacheln — niemand zoomt mitten im Ozean hinein 😉
  • Ich habe vor Kurzem eine pmtiles-basierte Lösung ausgerollt und bin wirklich sehr zufrieden
    Siehe die PMTiles-Dokumentation
    pmtiles verwendet MVT, aber ich hoffe, dass künftig Tools erscheinen, die nach MLT konvertieren können

    • Tatsächlich ist PMTiles unabhängig vom Kachelformat. Es gibt bereits einen PR, der das Typ-Byte so aktualisiert, dass auch MLT enthalten ist
    • PMTiles kann nicht nur MVT, sondern auch viele andere Formate wie PNG, JPEG, WebP und AVIF enthalten. Siehe das Spezifikationsdokument
    • Ich baue PMTiles derzeit mit Tilemaker, aber um MLT mit Tilemaker zu erzeugen, wäre wohl ziemlich viel Arbeit nötig 😅
    • pmtiles ist wirklich eine einfache und zugleich innovative Lösung
  • MapLibre ist die beste JS-Bibliothek zur Darstellung von Karten im Browser, die ich bisher verwendet habe
    Ich freue mich auf den Umstieg auf das neue Format

    • Stimme voll zu 👍
  • Planetiler kann MLT mit der CLI-Option --tile-format=mlt erzeugen
    Derzeit nur im main-Branch, aber eine Veröffentlichung steht bald an
    Tests haben gezeigt, dass sich die Größe des OpenMapTiles-Archivs in der Standardkonfiguration um etwa 10 % reduziert hat. Weitere Optimierungen laufen bereits

  • Leider hat Tilemaker mittelfristig keine Pläne für MLT-Unterstützung
    Deshalb könnte ein Teil der Community beim Umstieg außen vor bleiben
    Zur Diskussion siehe den Issue-Thread

    • Später wird eine Konvertierung trotzdem möglich sein. Im Repository gibt es ein Java-basiertes Konvertierungsprogramm, das von MVT nach MLT umwandelt
  • Es ist interessant, dass Vektor-Dateiformate immer noch neu erfunden werden
    Verbesserungen bei Kompressionsrate oder Decoding-Geschwindigkeit verstehe ich, aber mich würde interessieren, welche neuen Ideen oder Einsichten dieses Design angetrieben haben

  • Ich beobachte dieses Projekt schon eine Weile und bin wirklich gespannt
    Aus Sicht von Nutzern des MapLibre-Stacks ist die letzte große Aufgabe aus meiner Sicht, dass PostGIS eine As_MLT()-Funktion bekommt

    • Und Geoserver-Unterstützung wird ebenfalls benötigt
  • Hostet hier jemand Karten selbst? Mich würden Vor- und Nachteile sowie die verwendeten Tools interessieren

    • Wir self-hosten seit einigen Jahren protomaps (pmtiles)
      Der Server muss lediglich statische Dateien per Range Request ausliefern können (mit Caddy oder Nginx geht beides)
      Die Karte ist eine einzelne große Datei, daher lässt sie sich auch leicht zwischen mehreren Servern teilen
      Nachteile gibt es fast keine, aber clientseitig muss eine Bibliothek für die Unterstützung eines benutzerdefinierten Protokolls ergänzt werden
      Das Bearbeiten von Styles ist etwas knifflig, aber man kann Protomaps-Styles im Maputnik-Editor laden und anpassen
      Siehe die Anleitung
    • Ich self-hoste ebenfalls mit pmtiles eine Store-Locator-Karte für Australien
      Ich habe eine weltweite Karte mit niedriger Auflösung (50 MB) und eine hochauflösende Karte für Australien (900 MB) separat erstellt und nach S3 hochgeladen
      Ich brauche keine aktuellen Daten, deshalb lasse ich sie einfach so liegen, und es funktioniert hervorragend
    • Auch bei einem Projekt zur Erstellung hochauflösender Karten für den Druck war Self-Hosting die einzige praktikable Lösung
      Kommerzielle APIs waren entweder bei der Erzeugung von Rastergrafiken mit 300 dpi zu teuer oder hatten Beschränkungen beim Weiterverkauf
    • Ich self-hoste ebenfalls. Der Vorteil ist die vollständige Kontrolle über Daten und Stack, der Nachteil ist, dass man den Stack selbst aufbauen und die Cloud selbst verwalten muss
      Ich speichere und liefere Vektor-Kacheln mit PostGIS aus und speichere Rasterdaten als GeoTiff-COGs in AWS S3
    • Wir verwenden mod_tile+renderd
      Wir bauen aus OSM das pbf für unser Interessengebiet (Colorado), starten dann den openstreetmap-tile-server-Container, wenden Styles an und rendern mit renderd
  • MLT ist zwar cool, aber ich würde mir solche Fortschritte auch bei 3D-Kachelformaten wünschen
    Derzeit sind Cesiums 3D Tiles faktisch die einzige Wahl, aber die Performance ist nicht so schnell wie erhofft