- 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
mltin der Eigenschaftencodinggesetzt werden
-
Ausprobieren und Entwicklung
- Verwendung des MLT-basierten Demo-Kachelstils
- Über den Encoding server lassen sich bestehende MVT-Stile in Echtzeit in MLT umwandeln
- Planetiler soll MLT-Erzeugung in der nächsten Version unterstützen
- Der Integrationsstand ist auf der offiziellen Seite zum Implementierungsstatus einsehbar
-
Zum Austausch über Erfahrungen mit MLT wird die Teilnahme am Slack-Kanal
#maplibre-tile-formatoder 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
Noch keine Kommentare.