Vad är mbtiles? Det är ett påfund av Mapbox för att göra det enkelt att bära med sig stora mängder geodata och enkelt visa dessa i olika väldigt enkla klienter.
Formatet är i praktiken en enda SQLite databas med mycket restriktiva lagringsregler. Det enda som stöds är ”tiles” projicerade i sfärisk Merkator. Det kan vara både rastertiles och kanske mer intressant vektortiles.
Stödet för mbtiles finns i GDAL och sedan version 2.3 hanteras även vektortiles utöver rastertiles i tidigare versioner. Trots detta så är det lite si och så med stödet i exempelvis QGIS, men då finns ju alltid plug-in.
Tillägget skapar en koppling till mbtiles-filen liknande det som görs vid en vanlig databaskoppling, men mbtiles är lite speciellt. Inte minst för vektortiles.
För att testa så laddar jag hem Open Street Map för Sverige i mbtiles-format.
https://openmaptiles.com/downloads/planet/
Hela Sverige blir en fil på runt 1.2 Gb, medan OSM i shape-format är runt 640 Mb komprimerat.
Finessen med vektortiles är bland annat att alla önskvärda attributdata är med, fast uppdelat och ”indexerat” som vanliga rastertiles, fördelat i olika skalsteg. I QGIS så ändras därför mängden lager i lagerlistan beroende på hur man zoomar i kartan. För att detta skall fungera så behöver mbtiles plugin hela tiden vara uppkopplad mot filen och göra justeringar med de data som visas och i vilka skalor detta skall ske. Det går därför bara att ha en mbtiles-fil uppkopplad åt gången i QGIS.
Mbtiles plugin för QGIS 3 är helt nytt och ger för mig en massa varningar och felmeddelanden, även om det fungerar någorlunda. Detta kommer att bli bättre, och vi får väl se om det i framtiden byggs in stöd i kärnan av QGIS för just mbtiles-formatet.
Jag har inte kunnat testa mbtiles speciellt uttömmande i QGIS 3 då det fungerar ganska… ”sporadiskt”. Jag får heller inte till stilsättningen från Mapbox JSON stilar, men att stilsätta går ju att göra manuellt.
Andra GIS som ArcGIS har visst stöd för mbtiles, men i likhet med stödet för GeoPackage så är det starkt begränsat och med mängder av förbehåll. I praktiken så är det lika omöjligt att använda mbtiles i ArcGIS som det är att använda GeoPackage. Mbtiles är däremot väldigt effektivt i olika webblösningar eller enkla appar. Detta spelar dock mindre roll om man inte kan skapa sina mbtiles-filer på ett enkelt sätt.
Ett sätt, jag vet inte om det är speciellt enkelt, är att besöka https://openmaptiles.com/ och kika på deras Open Source lösning för hantering och skapande av mbtiles.
Skall du då använda mbtiles?
Om du bygger mobila klienter som behöver en bakgrundskarta, då skall du nog kika lite närmare på mbtiles. Det är ganska smidigt att hantera geodata för mycket stora områden med mbtiles. Hela jorden i Open Street Map är exempelvis ”bara” 60 Gb. Det kan därför finnas motiv till annan användning också. Jag kommer dock tills vidare att hålla mig till andra lagringsmetoder för skrivbordsmiljön. Stora dataset i PostGIS och mindre i GeoPackage. GeoPackage och QGIS är dessutom en perfekt ”match” då stilar lagras i databasen och på sikt kanske även projektfiler och aux-data som typsnitt och grafik.