Målsättningen i det här inlägget är att skapa ett QGIS projekt med OSM data över hela Sverige som totalt sett inte får bli mycket större än just 1 gigabyte. Projektet kan jag sedan använda som startläge för QField projekt oavsett vart i Sverige jag beger mig.
Jag börjar med att ladda ner aktuella OSM data från http://download.geofabrik.de/. Det är bara att klicka på länken för Sverige och osm.pbf data.
Observera att om du inte vill ha hela det område som du laddar ner så kan du använda programmet osmosis och extrahera det område du behöver. Exempelvis:
osmosis --rb sweden-latest.osm.pbf --bb left=57.0 right=58.0 top=15.5 bottom=14.0 --wb jonkoping.osm.pbf
Konverteringen till MapBox *.mbtiles format kan sedan göras med fler olika program, men om det inte är väldigt stora områden och du har skapligt med Ram i din dator så tror jag TileMaker fungerar bra.
TileMaker är ett terminalprogram som exempelvis används med:
tilemaker --input sweden-latest.osm.pbf --output sweden.mbtiles
För att ovanstående ska fungera så behövs dock lite mer information. Inställningar för hur vector-tiles ska byggas skrivs i en config.json fil och en process.lua fil. Dessa skall finnas på samma sökväg som kommandot ovan körs från. Du behöver inte skriva dessa själv, utan kan kopiera exempelfiler som finns med i zip-paketet som hämtas från TileMakers GitHub (katalogen resources). Se bara till att de heter just så som jag beskrivit ovan.
Det går faktiskt att använda –bbox med kommandot tilemaker vilket gör att osmosis kanske inte är nödvändigt. Om det är någon fördel med osmosis för att skapa en bounding-box över tilemaker vet jag inte, men med båda kommandona så har du lite alternativ. Med tilemaker kan du behöva använda –bbox ändå, om dina indata saknar utsträckning…
Om du sedan vill ha ett område som har en kustlinje mot hav så behöver du även hämta ett dataset för alla dessa och spara dem i en katalog (på samma sökväg som övriga filer) vid namn coastline.
Instruktioner för hur du använder TileMaker finns på GitHub sidan.
I QGIS så är det nu bara att lägga till dina data…
Japp, alla data är där, men de ser lite tråkiga ut. Det går att bygga egna stilar i QGIS men det är ganska tradigt att göra allt från grunden, så man kan ju alltid ta lite genvägar.
Det finns många ”öppna” stilar för vector tiles som bygger på OSM data. En sidan där några vanliga kan hämtas är https://openmaptiles.org/styles/.
Välj de stilar du är intresserad av och ladda ner style.json filerna för dessa från GitHub (länk på sidan).
I QGIS så öppnar du sedan lagerinställningarna och väljer att ladda in en stil…
I dialogrutan pekar du helt enkelt på den nedladdade filen style.json och klickar OK. Detta läser in en lång lista med stilobjekt som tillämpas på olika data i olika skalor.
Det går att ha flera stilar för ett och samma lager inläst i QGIS, så döp om den första stilen till ett passande namn. Lägg därefter till en ny stil med ”Add…” i högerklicksmenyn för lagret. Döp detta till ett nytt passande namn och ladda in stilfilen för den stilen i lagerinställningarna som tidigare. Du kan sedan växla stil i samma meny.
För att göra det ännu enklare kan ett ”tema” skapas för varje stil. Välj bara en stil åt gången och lägg till ett tema med samma namn för varje.
När detta är gjort och testat så är det bara att paketera projektet och *.mbtiles filen och kopiera över till enheten med QField och importera/öppna det där.
thumb
I inställningarna är det nu lätt att växla utseende på kartan utan att det är mer än ett enda paket med vektor-tiles inläst.
Vad landade jag nu på i storlek? QGZ-filen kan jag nog bortse ifrån i sammanhanget och min sweden.mbtiles fil blev 1.1 GB.
Jag tycker att det är tillräckligt bra eftersom jag inte hade en ”hård” gräns att förhålla mig till. Men om så var fallet så hade jag kunnat botanisera lite i de OSM-kommandon som beskrevs i början och applicerat någon form av filter för att minska datamängden.
Hela Sverige i en off-line version i QField med öppen källkod och öppna data (ODbL) med två filer nära 1 GB tycker jag är helt fantastiskt. Nu ska vi bara lista ut hur man bygger en *.mbtiles fil med lämplig stil baserat på Lantmäteriets samtliga vektordata i en enda fil…
1 svar på ”Sverige OpenStreetMap off-line 1 GB”