I nya QGIS 3.10 finns massor med nyheter. Inte minst spännande då detta är tänkt att bli nästa LTR version någon gång i början på nästa år, när så många buggar som möjligt fixats. Och ja, det finns buggar, det gäller nu att försöka identifiera exakt vad som orsakar exempelvis krascher av programmet, rapportera detta och förhoppningsvis få det fixat.
Jag tänkte titta på en nyhet, eller snarare förbättring i detta inlägg. Nämligen skapandet av xyz-tiles. Detta har funnits i någon tidigare version, men nu är det dessutom en flertrådig process som går riktigt snabbt.
Verktygen finns under Raster tools och kan skapa tiles för såväl mbtiles-formatet som direkt till kataloger för exempelvis LeafletJS och OpenLayers. Här kommer jag att testa med mbtiles och data från Ordnance Survey och deras utmärkta nationella vektorkarta i GeoPackage format, Open Zoom Stack.
Jag gör det inte direkt enkelt för datorn när jag dels väljer ett ganska stort område och dels går ner till zoomnivå 16. Resultatet är inte ögonblickligt heller, vilket inte var att förvänta, och visst jobbar datorn för högtryck. Men det går betydligt fortare än tidigare, vilket också är förväntat.
Anledningen till att jag väljer Open Zoom Stack och inte mina databaser med exempelvis terrängkartan i Sverige är att dessa data är bättre förberedda för att se snygga ut oavsett vald projektion. Mina svenska data är skapade för SWEREF99TM och när jag byter till Pseudo Mercator så blir storlekar på symboler och texter på tok för små. Jag behöver göra om alla dessa stilar till att passa även andra projektioner, men det är ett stort jobb.
Dessutom så tappade processen ett antal rutor i resultatet, så nu tänkte jag prova ett annat dataset för att se om det blir liknande resultat eller om dessa data fungerar bättre.
I några zoomnivåer, mest ut-zoomat, så saknades det några tiles, men resten verkar vara komplett utan tappade tiles, vilket är positivt.
Nu går det att bygga tile-kataloger eller databaser så mycket fortare än tidigare, så om man har en mobil-app med mbtiles-data, eller en webbkarta med tiles, så kommer det att gå att uppdatera dessa betydligt oftare, då det som sagt går många gånger fortare än tidigare. Om man sedan har en monstermaskin med AMD Threadripper så blir det säkert bara bättre. Om snabbheten är helt linjär med hur många trådar man har vet jag inte, men det skadar absolut inte att ha många.
Vill man snabba upp processen ännu mera så kan man använda en annan nyhet, nämligen metatiles. Som standard är värdet satt till ”4”, men det går att sätta upp till 20. Ju högre värde desto snabbare går processen, men det krävs mer RAM. Syftet är också att minimera antalet ”klippta” etiketter och symboler, genom att flera tiles genereras tillsammans. Åtminstone så tror jag att det är det inställningen gör. Normalt renderas rutorna 4×4, men det går som sagt att justera både uppåt och nedåt. Ökningen om jag inte räknat fel är exponentiell så antalet rutor är valt antal upphöjt till 2.
När jag renderar London med metatiles satt till 20 så renderas 171 rutor. När jag använder metatiles 1 så är det över 53’000, vilket mycket grovt räknat stämmer med mitt antagande.
I begreppet ”metatiles” så finns även en buffert. Om denna buffert även används i detta verktyg vet jag inte säkert, men det går i alla fall inte att sätta bufferten manuellt. Om man har problem med klippta etiketter så skulle en större buffert vara en lösning på det problemet.
I bilderna ovan är metatiles 1 till vänster och 20 till höger. När jag granskar lite närmare så verkar det faktiskt som att det är fler etiketter i den med 20, men där är även fler tappade tiles. I den med 1 som metatile size så är det bara i de minsta zoomnivåerna som det saknas enstaka tiles. Resten verkar vara komplett. Värdet 4 som är standard kanske är ett bra mellanläge…