I ett tidigare inlägg testade jag OpenStreetMap till MBtiles, något som så många gjort tidigare att det inte bara fanns verktyg som gjorde mycket av jobbet utan även många färdiga stilar som bara var att ”applicera”. Något säger mig att mitt nya projekt är lite mer omfattande…
Jag tänkte försöka bygga ett vektor tile paket med alla öppna vektordata från Lantmäteriet i SWEREF99TM, sömlöst växlande över skalintervall från 1:10’000’000 till 1:20’000 (ca). Dessutom ska allt se ”snyggt” ut på skärmen och förhoppningsvis i tryck (när jag nu skall printa en karta).
Det kan finnas bättre sätt att göra detta, men jag ser det även som en utbildande övning i hur vektor tiles fungerar i QGIS (m.fl. mjukvaror). Tänk bara om ArcGIS Pro kunde stödja MBtiles… Det kanske kommer i framtida versioner. Esri lägger ju trots allt till stöd för OGC 3Dtiles i Pro version 3.2.
Nåja, första steget blir att lägga till ALLA vektorlager i ett enda QGIS projekt.

Väldigt mycket data blir det, så nästa steg blir att rensa bort lager jag inte kommer att använda.
Många av lagren heter likadant i de olika skalorna (äldre dataset med exempelvis my_riks). Detta kanske man kan använda på ett smart sätt, men jag tror jag försöker skilja på data från olika källor genom att döpa om alla lager med tillägget 50k, 100k, 250k eller 1m i lagernamnen.

I huvuddialogen för processverktyget ”Write Vector Tiles (MBTiles)” går det att sätta min och max zoom nivå för alla data. Jag vill använda data från nationell nivå i skala runt 1:10’000’000 till tätortsnivå med gator i skala runt 1:20’000. Detta motsvarar ungefär zoom nivåer mellan 5 och 15. Genom att begränsa zoom nivåer så sparar man lite lagringsutrymme i mbtiles-filen.
Dessutom går det att sätta zoom intervall per lager i listan med input layers. Även detta skulle jag tro minskar datamängden i paketet, samt bearbetningstiden, som jag tror blir omfattande i vilket fall som helst.
(Andas djupt… Trycker ”Run”)

En natts sömn senare så står det 3% i statusen för bearbetningen. Jag har antagligen tagit i mer än vad jag kommer att orka vänta ut, men det får gå ett tag till. Vektordatabasen i Esri Fildatabasformat är mellan 11 och 12 GB, och MBTiles-filen är 2.3 GB vid det här tillfället. Jag tror inte att den slutliga storleken kommer att skala linjärt, det borde den i alla fall inte göra, men jag blir inte förvånad om MBTiles filen blir åtminstone lika stor…
Då det verkar som att processen bara körs i en enda tråd på datorns CPU, så gör jag ett nytt test med Lantmäteriets öppna data Topografi50 enbart. Den här gången vill jag göra så få ändringar som möjligt, för att det ska gå att applicera processen direkt på de data som finns tillgängliga för nedladdning.

Ladda ner hela Sverige som ett stort datapaket. Gör samma sak som ovan, men i det här fallet så begränsar jag hela paketet till zoom-nivå 13-15, vilket motsvarar ca 1:20k – 1:67k.
I övrigt samma metod som tidigare, välj ”Run” och gå och gör något annat ett tag. Många timmar senare så har den första körningen kommit 4% och den nya 2%… Detta håller inte!
När jag började konverteringen så hade jag hoppats att vektor tiles hade kommit längre än när jag testade för några år sedan (länk). En del av mina invändningar då är åtgärdade i och med att det finns processverktyg i QGIS för att skapa MBTiles filer, men stilsättningen görs fortfarande mera manuellt.
Det som däremot är det största hindret just nu är dock att processen att konvertera till vektortiles är så förtvivlat långsam. Jag har då heller inte testat hur vektordata uppträder i QGIS och om reduceringen av noggrannhet fortfarande är ett problem.
Om jag sedan väger in att GeoPackage eller till och med Esri fildatabas är riktigt snabba i QGIS för att hantera stora mängder vektordata, så blir användbarheten för vektortiles begränsad. Om man skall skapa en webbapplikation eller en mobil-app med kartor så finns det säkert motiv, men jag är lite skeptisk så här långt.
Sedan kan det ju vara så att mitt experiment här har drabbats av ett oväntat problem, inte minst med tanke på hur bra det gick att konvertera OSM data till MBTiles det tidigare inlägget jag hänvisade till i inledningen (länk).