Offline-Karten sind in taktischen Anwendungen nicht optional. Operatoren in umkämpften oder abgelegenen Umgebungen können sich nicht auf Kachel-Server verlassen. Das Kartenpaket muss sich auf dem Gerät befinden, ohne Internetzugang abfragbar sein und klein genug sein, um in den verfügbaren Speicher zu passen. Zwei Kachel-Paketierungsformate dominieren den taktischen Einsatz: MBTiles — der etablierte SQLite-basierte Standard — und PMTiles — ein neueres Einzeldateiformat für cloud-optimierten Zufallszugriff.

MBTiles-Format: SQLite-Container-Struktur

MBTiles ist eine offene Spezifikation, die von Mapbox gepflegt wird und Kartenkacheln — Raster oder Vektor — in einer SQLite-Datenbank verpackt. Das Datenbankschema ist minimal: zwei erforderliche Tabellen und eine optionale.

Die tiles-Tabelle speichert die eigentlichen Kacheldaten: zoom_level INTEGER, tile_column INTEGER, tile_row INTEGER und tile_data BLOB. Das Kachel-Koordinatensystem verwendet die TMS-Konvention (Tile Map Service), bei der die Y-Achse im Vergleich zur üblicheren XYZ-Konvention umgekehrt ist: tile_row = (2^zoom - 1) - y. Diese Inversion ist eine häufige Fehlerquelle bei der Integration von MBTiles mit Kartenbibliotheken, die XYZ-Koordinaten verwenden.

Der zusammengesetzte Index auf (zoom_level, tile_column, tile_row) ist der kritische Leistungsindex — ohne ihn degenerieren einzelne Kachel-Lookups zu vollständigen Tabellenscans, wenn die Datenbank wächst.

PMTiles: Einzeldatei-Zufallszugriffsformat

PMTiles wurde von Protomaps als cloud-optimierte Alternative zu MBTiles entwickelt. Eine einzelne PMTiles-Datei enthält alle Kacheln plus einen internen Index, der es ermöglicht, jede Kachel mit höchstens zwei HTTP-Bereichsanforderungen zu lokalisieren, unabhängig von der Gesamtgröße der Datei.

Die interne Struktur von PMTiles besteht aus einem festen 127-Byte-Header, einem Root-Verzeichnis und Blattverzeichnissen. Jeder Verzeichniseintrag ordnet eine Kachel-Koordinate (als Hilbert-Kurven-Index für räumliche Lokalität kodiert) einem Byte-Offset und einer Länge innerhalb der Datei zu.

Der Kompromiss: PMTiles ist von Natur aus unveränderlich. Das Hinzufügen oder Ersetzen einzelner Kacheln erfordert das Neuschreiben der Datei. Für taktische Anwendungen, bei denen das Kartenpaket als Ganzes ersetzt wird, ist dies kein Problem.

Kachel-Generierung: tippecanoe, MapTiler, GDAL

tippecanoe ist das Standardwerkzeug für die Generierung von Vektorkacheln aus GeoJSON-, FlatGeobuf- oder GeoPackage-Quelldaten. Für taktische Anwendungen sind die wichtigsten tippecanoe-Parameter: --maximum-zoom (typischerweise 16 für den Infanterieeinsatz, 12–14 für Fahrzeugoperationen) und --minimum-zoom (0 für den Bereichsüberblick, 6–8 zur Vermeidung unnötig großer Dateien).

MapTiler Engine verarbeitet die Raster-Kachel-Generierung: Ortholuftbilder, Satelliten-Raster, DTED-Gelände. Wichtige Parameter sind das Ausgabekachelformat (PNG für Bilder mit Transparenz, JPEG für reines Raster bei 75–85 Qualität, WebP für kleinere Dateigröße).

GDAL bietet ähnliche Raster-Kachel-Generierungsfähigkeiten über das Skript gdal2tiles.py. Für große Quelldateien ist die Generierungszeit erheblich — 8–16 Stunden für einen vollständigen Länder-Kachelset auf einer einzelnen Workstation. Parallelisierung über das Flag --processes N reduziert dies proportional.

Strategien für partielle Updates

Der vollständige Kartenpaketsaustausch ist operativ aufwendig. Strategien für partielle Updates lösen dies mit Delta-Paketen — MBTiles-Dateien, die nur die geänderten Kacheln enthalten. Die Zusammenführungsoperation auf dem Gerät verwendet SQLite's INSERT OR REPLACE INTO tiles-Syntax.

Integration in Android und iOS

Auf Android ist MapLibre GL Native der standardmäßige Open-Source-Kartenrenderer für Anwendungen, die Offline-Vektorkacheln benötigen. Er akzeptiert MBTiles-Quellen über eine benutzerdefinierte LocalTilesSource-Implementierung. Eine taktische Anwendung kann gleichzeitig eine Basis-Raster-Ebene aus Satellitenbildern-MBTiles, eine Vektor-Overlay-Ebene aus Geländemerkmal-MBTiles und eine dynamische Annotationsebene aus der eigenen SQLite-Datenbank der Anwendung anzeigen.

Wichtige Erkenntnis: Die operativ bedeutsamste Paketierungsentscheidung ist die Auswahl der Zoomstufen. Das Paketieren der Zoomstufen 0–18 für eine landesweite Bereitstellung erzeugt Dateien, die 10–50x größer sind als Zoomstufen 6–16. Für den Infanterieeinsatz sind Zoomstufen 8–17 der operative Bereich. Paketieren Sie niemals mehr Zoomstufen als der operative Bedarf verlangt.