Igår så jobbade jag med att skapa tiles med insticksprogrammet QTiles till QGIS. I detta så går det att skapa en enkel Leaflet karta baserat på dessa.
Denna karta kan man sedan bygga vidare på och jag nämnde att jag skulle kunna spara denna till senare tillfälle och bara kopiera in mina tiles till underkatalogen, göra några enkla ändringar, så var det klart.
Nu trodde jag att jag hittat ett bättre sätt!
Tittar man i plugins katalogen så hittar man ”qtiles” och en resurskatalog som innehåller en fil vid namn ”viewer.html”.
Detta är källfilen till den webbkarta som skapas av insticksprogrammet, så varför inte göra modifieringarna där direkt?
I filen finns det ett antal variabler som ersätts med information från insticksprogrammet när det genererar sitt resultat:
- @tilesetname
- @centery
- @centerx
- @avgzoom
- @tilesdir
- @tilesext
- @maxzoom
- @tms
Dessa går att använda på fler platser om så önskas. Så länge man hänvisar till on-line källor för javaskript och stilmallar så behöver man sedan inte göra så mycket mera. Det är klart!
Exportera det som skall exporteras med QTiles, se till att Leaflet är ikryssat, sedan är det exporterat och färdigt!
Men vänta lite, stod det inte ”trodde” att detta var ett bättre sätt? Jo just det. Hur jag än försökt med att kompilera om pythonkod, rensa i chacher, byta namn på saker, med mera. Så får jag inte detta till att fungera! Filerna som genereras är likafullt den gamla originalfilen. Jag kan inte hitta vad jag skall göra för att lyckas… Hjälp!
Nåja, tills vidare så fungerar mitt ursprungliga sätt ganska bra i alla fall…
Nu behöver jag bara reda ut hur jag kan använda exempelvis ”Proj4leaflet” för att slippa använda webmercator som projektion. Varför? Webmercator är riktigt opålitlig för allt annat än en ren visualisering av geografisk information. Har man lite högre ambitioner så bör webmercator (ex.vis EPSG:3857) undvikas. För småskaliga kartor framför allt nära ekvatorn så är problemet mindre, men ju längre från ekvatorn och ju mer inzoomad man är, desto större problem kommer man att få.