Igår utlovade jag ett test av ett pythonskript som genererar en TMS server med Leaflet.JS från ett QGIS projekt. Skriptet är på runt 100 rader så om det fungerar är det ganska imponerande.
Skriptet finns på https://github.com/wonder-sk/qgis-tile-server och består i praktiken av en enda pythonfil.
Filen måste redigeras för att fungera men det är inte mycket som behöver ändras.
Man måste ange sökvägen till QGIS installationsmapp, samt var cachade tiles skall lagras. Sedan behöver man såklart ange sökvägen till det QGIS projekt man vill publicera.
Sedan är det bara att köra igång servern med
python tileserver.py
För att fungera så krävs ”flask” vilket enklast installera med pip.
sudo pip install flask
Därefter är det bara att öppna en webbläsare med adressen http://localhost:5000
Japp! Det finns en server. Den använder QGIS som motor och det är Python som server med Leaflet.JS som bas, men… Är det inte lite väl vitt?
Jag har provat med olika projektfiler. Olika koordinatsystem i filer och projekt. Lager som tjänster, raster och vektor, men ingen framgång.
Tiles genereras på den utpekade sökvägen, men de är väldigt vita här med.
Jag är ganska säker på att projektet måste vara EPSG:3857 och även om det är några saker i koden som känns lite lustigt så kan jag inte fixa det så att det fungerar.
Jag har provat pythontolken i QGIS för att köra några kommandon och något som inte verkar fungera är själva sparandet av tile filer ( job.renderedImage().save(tile_filename) ).
Om någon är mer Pythonkunnig och vill prova så har ni alla länkar till resurserna i texten ovan. Det kanske fungerar annorlunda på Windows? Eller med en annan QGIS version?