Något jag saknat i QGIS 3 sedan ett år tillbaka, är nu på gång att åtgärdas. Det handlar om att skapa x, y, z -tiles på ett smidigt sätt från ett projekt, som sedan kan användas med exempelvis Leaflet eller OpenLayers webbkartor.

För att installera detta plugin så behöver du aktivera experimentella plugin i inställningarna.
Du skall sedan välja eller skapa ett QGIS projekt som fungerar i de skalor som du vill generera tiles för.
Zoomnivåernas motsvarighet i skala är helt beroende av latituden, då grunden är en enda tile som är helt kvadratisk och omfattar hela jorden. För denna motsvaras varje pixel 156’250 meter vid ekvatorn. Med en skärm som har 96 dpi blir det en skala runt 1:590’000’000. För varje nivå så dubblas skalan, så nivå 1 är 1:295’000’000 och så vidare.
Om man vill ha en uppskattning av skalan på en viss latitud så kan man räkna exakt eller använda en uppskattning. Det blir nog tillräckligt nära om man kompenserar med cos(latituden).
Eksjö ligger på 57 grader norr, och om jag vill hitta en zoomnivå för en skala som ligger runt 1:50’000 så blir det ungefär nivå 13.

Vill jag därför generera kartblad i skalor runt 1:50’000 så bör jag välja nivå 12 och 13. För att testa väljer jag ett mindre område i ett projekt och begränsar genereringen till kartans utbredning.

Under de avancerade inställningarna kan man även lägga till att det skall skapas en enkel Leafletkarta med genererade tiles.
På den sökvägen som man angivit i dialogen för QTiles3 så hittar man när allt är klart en html-fil som man kan öppna i en webbläsare för att kontrollera resultatet.

Beräkningen verkar stämma ganska väl i praktiken vid en jämförelse. Kartan i bakgrunden är från QGIS och i skala 1:39’000, medan webbkartan är nivå 13.
Det blir lite speciellt med renderingen av dessa tiles, vilket nog är tydligt i bilden ovan. Texter blir inte lika stora, och en del texter verkar vara borta. En del av detta kan förklaras med att mina stiler är angivna med mått i kartenheter. Mitt antagande är därför att alla symboler är cos(57) så stora som de egentligen borde vara. För att testa detta så delar jag ortsnamnstextens storlek med cos(57), genererar nya tiles och jämför igen.

Och teorin verkar stämma! Om man skall generera tiles från QGIS och inte befinner sig på ekvatorn, men ändå vill att kartan skall se ut som den gör i QGIS. Då kan man behöva skapa stilar som kompenserar för latituden på det här sättet.
Det stora problemet med QTiles för 2.18 var i mitt tycke att etiketter klipptes och inte renderades över kanterna på de tiles som genererades.

Zoomar jag in till nivå 14 i webbkartan (ovan) så blir detta ganska tydligt. Texten Eksjö är avhuggen, likaså ”Ränneslätt” till vänster. Problemet från 2.18 finns därför kvar även i denna version.
Om man genererar tiles med QTiles och vill ha med etiketter, så måste man först göra om alla etiketter till raster. Detta gäller i princip för alla vektorsymboler som sticker ut från sitt geometriska centrum, så större punktsymboler och en del linjer, behöver också hanteras på samma sätt för att det skall bli bättre.

Men riktigt bra blir det inte… Däremot så slipper jag kompensera för latituden då bilden genereras i QGIS mot korrekt skala innan QTiles gör om lagren till tiles.
För mindre områden så är detta hanterbart då man kan generera rasterlager med mycket högre upplösning som kompensation för detta, men om man tänker sig att generera tiles för ett större område så blir det snabbt ganska ohanterbart på grund av datamängden.
Det bästa vore väl om det finns ett alternativ att generera tiles som är X % större än standard och sedan beskära dessa till rätt storlek. Det skulle ta längre tid, men om det ger snygga tiles så är det bättre att beräkningstid för datorn blir längre, än att min arbetstid med projektet skall öka.
Samma sak gäller att kompensera för latituden. Det borde också vara ett valbart alternativ.
Hur som helst är QTiles för QGIS 3 ett välkommet och efterlängtat tillskott.
Från Twitter:
Qmetatiles löser etikettproblemet men det verkar tyvärr inte vara någon ny version på gång så där är det 2.18 som gäller.
Hej!
Jag arbetar på liknande sätt och försöker generera en html-fil genom qtiles (använder Qgis 2.18). Att använda denna plugin fungerar för att genera tiles, men html-filen fungerar ej för mig (fönstret visar ingenting). Vet du vad detta kan bero på?
Jag skulle först och främst säga att version 2.18 är lite väl gammal…
QGIS 3.18 (senaste LTR) eller 3.20 (senaste stabila) är de enda versioner som har fortsatt support för närvarande och 3.22 släpps om en månad (ungefär). I QGIS finns numera ett inbyggt verktyg för att generera XYZ tiles i såväl kataloger som i form av *.mbtiles.