GeoPackage

Ähnlich wie MBTiles ist auch GeoPackage ein auf einer SQLite Datenbank basierendes Dateiformat, welches neben Vektordaten und nicht-raumbezogenen Daten auch zur Speicherung von Rasterdaten geeignet ist. Dabei ist eine Nutzung vor allem auch dafür angebracht, das in der Geoinformatik häufig verwendete Format „Shapefile“ zu ersetzen, da es die Problematiken mit der Arbeit mit Shapefiles (mehrere Einzeldateien, veraltete Restriktionen, proprietär) komplett umgeht. Das Format besteht stets aus einer einzelnen Datei (Datenbank) in der sich sämtliche Informationen zu Attributen, Projektion etc. befinden, was das Format sehr kompakt und flexibel macht. Im Gegensatz zu MBTiles ist GeoPackage ein OGC-Standard, welcher weniger Einschränkungen unterlegen ist: zum einen ist es möglich, in GeoPackage verschiedene Rasterformate zu speichern und zusätzlich in derselben Datei noch Vektordaten einzufügen. Zum anderen ist GeoPackage per Standard zwar ebenfalls in EPSG:3857 projiziert, jedoch ist es möglich der Datei eine beliebige Projektion zuzuweisen.

Diagramm der internen Speicherung von GeoPackage

Die Speicherung der Rasterdaten erfolgt dabei folgendermaßen (vgl. Abbildung) : Unabhängig von der Art des Inhalts – also Vektor oder Raster – werden zunächst folgende zwei Tabellen erzeugt: die Tabelle gpkg_spatial_ref_sys definiert die in diesem GeoPackage vorhandenen Projektionen, während die Tabelle gpkg_contents eine Auflistung der in dem Package vorhandenen Daten beinhaltet. Die konkrete Speicherung der Rasterdaten erfolgt dabei analog zu MBTiles mithilfe einer Bildpyramide. Dafür ist die Erzeugung von drei Tabellen notwendig. Die Tabelle gpkg_tile_matrix_set definiert dabei die Ausdehnung und Projektion aller Rasterdatenquellen. In der Tabelle gpkg_tile_matrix werden hingegen die Eigenschaften der eigentlichen Bildpyramide definiert, die aus Zoomlevel, Zeilen- und Spaltenanzahl, Größe der Kacheln und Größe der Pixel besteht. Die eigentliche Speicherung der Rasterdaten als BLOB findet, genau wie auch in MBTiles, mittels einer Tabelle statt, die den Daten die jeweilige Position in der Bildpyramide zuweist.

Interessanterweise ist dabei die Dateigröße, welche inklusive Overviews (Bildpyramiden) nur etwas mehr als 50% der ursprünglichen GeoTIFF-Dateien benötigt. Allerdings tritt bei Publikation der Daten im GeoServer eine Fehlermeldung auf, obwohl die Integration des Datenspeichers zunächst reibungslos funktioniert. Dies lässt sich bisher nur dadurch beheben, dass dem umprojizierten virtuellen Mosaik kein zusätzlicher Alphakanal zugeordnet wird; mit der Folge, dass es in den durch die Projektion entstandenen Flächen zu einer schwarzen Einfärbung kommt.

Ebenfalls ist, wie auch bei MBTiles, die Darstellung clientunabhängig mitunter fehlerbehaftet: bei gewissen Bildausschnitten, insbesondere wieder in Randbereichen, entstehen falsche Darstellungen, in denen die Bildpixel immens groß oder gänzlich schwarz dargestellt werden.

Vorteile Nachteile
Einzelne Datei
Alpha-Kanal (Transparenz) von GeoServer (noch) nicht unterstützt
Sehr kleine Dateigröße
Fehlerhaftes Rendering der Randbereiche
Gut erweiterbar (auch mit Vektordaten)
In Wunsch-CRS (EPSG:25833) projizierbar