Från QGIS till webben: fem sätt att dela en karta
QGIS är där jobbet görs, men de som behöver kartan har sällan QGIS. Fem sätt att publicera en karta på webben, och hur du väljer mellan dem.
De flesta GIS-verksamheter känner igen sista biten. Analysen är klar, lagren är symbolsatta och projektfilen sitter precis som den ska. Sedan hör någon på en annan avdelning av sig och undrar om de får titta. Då exporteras en PDF som bifogas i ett mejl, och i samma stund slutar kartan att vara en karta. Ingen kan zooma, filtrera eller klicka på ett objekt för att se attributen, och några veckor senare är den inaktuell samtidigt som den fortsätter cirkulera som sanning.
Att publicera ett QGIS-projekt på webben är löst i den meningen att det finns flera bra svar. Det är olöst i den meningen att svaren sällan jämförs ärligt med varandra. Varje väg innebär olika mycket teknik att förvalta, olika arbetsflöden för uppdateringar och olika svar på frågan om vem som får se resultatet. Här går vi igenom hela fältet, ungefär i den ordning som allt mer hamnar i ditt eget knä.
De fem alternativen i korthet#
| Metod | Det du driftar | Passar för | Begränsningen |
|---|---|---|---|
| Bild- eller PDF-export | Ingenting | En ögonblicksbild i en rapport | Ingen riktig karta, och den blir snabbt inaktuell |
| qgis2web | Ett filwebbhotell | Mindre öppna dataset utan budget | Hela datamängden laddas i webbläsaren och allt blir publikt |
| QGIS Server | Server, webbstack och en klient | Exakt QGIS-symbolsättning och OGC-tjänster | Kräver riktig systemdrift med uppdateringar och säkerhet |
| PostGIS med egen frontend | Databas, tileserver och webbapp | Skräddarsydda produkter med särskilda krav | Månader av utveckling innan första kartan är uppe |
| Molnbaserad GIS-plattform | Ingenting | Verksamheter som publicerar löpande | En abonnemangskostnad, och symbolsättningen görs om på webben |
1. Exportera en bild eller en PDF#
Standardvalet, och det finns inget fel med det för det som det faktiskt är bra på: en fast figur i en rapport, en utskriven väggkarta, en bilaga till ett planbeslut. Utskriftsverktyget i QGIS är utmärkt, och en välgjord PDF slår en illa gjord webbkarta för dokument som ska arkiveras precis som de såg ut.
Problemet uppstår när kartan ska användas. Läsaren kan inte tända och släcka lager, inte hitta sin egen fastighet och inte kontrollera ett attribut. Dessutom lever varje export sitt eget liv: versionen i någons inkorg kommer aldrig i kapp den i din databas. Märker du att du exporterar samma karta varje månad är det signalen att gå vidare i listan.
2. qgis2web — en statisk webbkarta från projektet#
Insticksmodulen qgis2web exporterar det öppna projektet till en mapp med HTML, JavaScript och data som renderas av Leaflet eller OpenLayers. Lägg mappen på valfritt webbhotell så har du en fungerande karta med popuper, lagerväljare och en hyfsad återgivning av din symbolsättning. Det är gratis, tar tio minuter och är ett genuint bra svar för ett mindre öppet dataset.
Begränsningarna märks snabbt. Datan bakas in i sidan, så besökarens webbläsare laddar ner hela datamängden innan något ritas ut. Det fungerar fint för några hundra objekt, känns tungt vid tiotusen och är ogörligt vid en miljon. Någon behörighetsstyrning finns inte alls, utan allt du exporterar är publikt för den som har länken. Och uppdateringarna sköts för hand: när datan ändras öppnar du QGIS igen, exporterar om och laddar upp på nytt. Det är samma problem som med PDF:en, fast i finare kostym.
3. QGIS Server — publicera projektet som OGC-tjänster#
QGIS Server läser samma .qgs-projekt som du redan har och publicerar det som standardiserade webbtjänster: WMS, WFS, WMTS och OGC API Features. Den stora fördelen är verklig, och ingen annan metod i listan matchar den. Renderingen görs av QGIS självt, så symbolsättning, etikettregler, skalberoende stilar och utskriftslayouter följer med precis som du ritat dem. Kombinerat med en klient som QGIS Web Client eller Lizmap får du en komplett kartportal. Det är också rätt svar när andra system behöver konsumera din data som OGC-tjänster i stället för att titta på en karta.
Priset betalas i drift. Du kör en server, med webbfrontend, FastCGI-processer, cachning, certifikat, inloggning, säkerhetskopior, patchning och versionsuppgraderingar. När kartan är seg klockan nio på måndagsmorgonen är även det ditt. Många verksamheter kör det med gott resultat, men var ärlig med om ni har personerna. En QGIS Server som ingen underhåller blir en säkerhetsrisk i stället för en tjänst.
4. PostGIS med tileserver och egen frontend#
Alternativet med störst kontroll: lägg datan i PostGIS, servera vektortiles med Martin, pg_tileserv eller Tegola och bygg en frontend i MapLibre eller OpenLayers. Allt är möjligt, ingenting är färdigt. Det här är rätt väg när kartan är en produkt, alltså när den behöver ett eget gränssnitt, ovanliga interaktioner eller djup integration med ett system som redan finns.
För det interna behovet ”VA-avdelningen behöver se ledningsnätet” är det däremot det dyraste sättet att misslyckas. Första kartan ligger månader bort, och underhållet tar aldrig slut: beroenden ska uppgraderas, webbläsare ändrar beteende och den som byggde alltihop byter jobb. Välj det här medvetet, inte för att ni råkade glida dit.
5. En molnbaserad GIS-plattform#
Ladda upp eller synka dina lager till en plattform som sköter lagring, tiles, symbolsättning, behörigheter och publicering, och få tillbaka en länk. Avvägningen är rak: du lämnar ifrån dig en del kontroll och betalar ett abonnemang, och i gengäld slutar både drift och uppdateringsrutiner vara ditt problem. För de flesta verksamheter vars uppdrag är att göra kartor snarare än att driva kartservrar är det här det pragmatiska svaret, förutsatt att du kontrollerar var plattformen faktiskt lagrar din data. För svensk offentlig verksamhet är den frågan inte liten.
Det som publiceringen faktiskt måste lösa#
Vilken väg du än väljer väntar samma sex problem. Det lönar sig att stämma av en tänkbar lösning mot alla sex innan ni bestämmer er, för de som brukar glömmas bort är fyra och fem.
- Prestanda vid stora datamängder. Ett rikstäckande fastighetsdataset är inte en GeoJSON-fil. Allt över några tusen objekt behöver vektortiles och generaliserade översikter, så att webbläsaren ritar en hanterbar del i varje zoomnivå i stället för allt på en gång.
- Koordinatsystemet. Din data ligger med största sannolikhet i SWEREF 99 TM, medan webbens standard är Web Mercator. Omprojicering går inte att undvika, men när och var den sker avgör om ytor och avstånd överlever resan. Vi har gått igenom det på djupet i SWEREF 99 TM, RT 90 och Web Mercator.
- Vem som får se kartan. De flesta kartor är inte publika. Vissa är publika men bygger på lager som inte får vara det. Skillnaden mellan ”internt i organisationen” och ”öppet på webben” behöver vara ett synligt val som går att granska, inte en länk du hoppas att ingen gissar.
- Att hålla kartan aktuell. Här ligger den verkliga kostnaden, och den syns inte alls den första dagen. Om en uppdatering betyder att någon måste exportera om från skrivbordet kommer det sluta göras. Fråga hur ett rättat attribut når läsaren och räkna antalet manuella steg.
- Redigeringen. Att rätta en felstavning i ett fält ska inte kräva export, uppladdning och ny publicering. Någon måste kunna ändra datan i det verktyg där de faktiskt arbetar.
- Läsarens upplevelse. Din publik öppnar länken i mobilen, mitt i ett möte, utan inloggning och utan GIS-bakgrund. Behövs det en manual kommer kartan inte att användas.
Så väljer du#
- Behöver du en fast figur till ett dokument? Exportera den. Krångla inte till det.
- Litet, publikt och statiskt dataset utan budget? Då är qgis2web det ärliga svaret.
- Behöver andra system din data som WMS eller WFS, eller är exakt QGIS-symbolsättning ett absolut krav? Då är det QGIS Server, om ni har någon som kan drifta den.
- Är kartan en produkt med särskilda krav och en utvecklingsbudget? Då bygger ni själva ovanpå PostGIS.
- Publicerar ni löpande, behöver behörighetsstyrning och vill att skrivbordet och webben delar samma data? Då är en molnbaserad plattform rätt.
Så fungerar det i OrbGIS#
Vi byggde OrbGIS för det femte fallet, med en tydlig övertygelse: ingen ska behöva lämna QGIS för att få ut sina kartor på webben. QGIS är där det seriösa geodataarbetet sker, och en webbplattform som motarbetar det är en plattform som folk stillsamt slutar använda.
Därför får skrivbordet vara kvar i flödet. OrbGIS Connector är en fri insticksmodul med öppen källkod för QGIS 3.34 och senare, skriven i ren Python utan extra beroenden. Du loggar in via webbläsaren i stället för att klistra in en API-nyckel, och får en panel som listar alla objektlager i din organisation.
- Publicera direkt från QGIS. Dra ett vektorlager från lagerpanelen i QGIS och släpp det i panelen. Det går genom samma inläsningskedja som en uppladdning i webben, med omprojicering, indexering, tiles och automatiska översikter för stora lager, och dyker upp som ett färdigt lager i portalen.
- Redigera där du redan arbetar. Lägg till i karta hämtar hem lagret som ett GeoPackage i ditt projekt. Du redigerar precis som vanligt och skickar sedan tillbaka ändringarna med Spara ändringar. Redigeringen är låsfri, alltså inga utcheckningar att glömma att släppa. Skulle en sparning nekas markeras lagret som osynkat i stället för att din lokala kopia tyst hamnar i oordning.
- Webbsidan är en riktig webbkarta, inte en export. Lagren renderas som vektortiles, så ett dataset med miljontals objekt förblir följsamt. SWEREF 99 TM, ETRS89-LAEA, EUREF-FIN och UTM-zonerna 32N och 33N serveras dessutom i sitt eget koordinatsystem, helt utan omprojicering i webbläsaren.
- Två separata val för synlighet. Ägarskapet styr vem inom organisationen som ser ett objekt, och publiceringen lägger ut en app på öppna webben. Innan något går live listar publiceringspanelen varje dataset som blir offentligt läsbart, så att du hinner säga nej. Läs mer under Dela och publicera.
- Läsaren behöver ingenting. En publicerad dashboard eller Journey ligger på er egen subdomän, öppnas i mobilen och kostar ingen licens.
En sak ska sägas rakt ut: symbolsättningen från QGIS följer inte med. Stilen sätts på webbsidan, i kartbyggaren, där den blir en gemensam egenskap för lagret i stället för något som bara finns i en enskild persons projektfil. Det är ett medvetet val, men det är också precis det som QGIS Server gör bättre. Är exakt återgivning av en komplex QGIS-stil ett hårt krav hos er vill vi hellre att ni vet det nu.
Allt ovan driftas i Sverige, under svensk och europeisk lag, helt utan amerikanska molnjättar i kedjan.
Frågor vi får#
Måste jag ha QGIS Server för att publicera en QGIS-karta?#
Nej. QGIS Server är en väg av flera och den enda som återger QGIS symbolsättning exakt, men den förutsätter att ni driftar och underhåller en serverinstallation. En molnbaserad plattform, en statisk qgis2web-export eller en egen PostGIS-lösning publicerar kartor helt utan den.
Kan jag fortsätta redigera i QGIS efter att kartan är publicerad?#
Med en plattform som synkar åt båda hållen går det utmärkt. I OrbGIS hämtar insticksmodulen hem lagret till ditt projekt, och Spara ändringar skickar tillbaka redigeringarna till samma lager som den publicerade kartan läser från. Ändringen syns alltså utan att något behöver exporteras om. Med statiska exporter är det tvärtom: varje ändring kräver en ny export och en ny uppladdning.
Följer min symbolsättning med?#
Bara med QGIS Server, som renderar med QGIS självt. qgis2web approximerar stilar i Leaflet- eller OpenLayers-termer och tappar det som de biblioteken inte kan uttrycka. Molnbaserade plattformar, OrbGIS inräknat, utgår från att lagret symbolsätts på webbsidan.
Vad händer med data i SWEREF 99 TM på webben?#
Den måste på något sätt förenas med webbens Web Mercator. De bra lösningarna serverar antingen tiles direkt i ditt eget koordinatsystem eller projicerar om en enda gång, vid inläsning, i stället för i varje bildruta. De sämre visar tyst ytor räknade i Web Mercator, vilket uppe vid polcirkeln kan bli flera gånger för stora. Vår guide om koordinatsystem går igenom vad du bör kontrollera.
Kan flera personer redigera samma lager samtidigt?#
Det beror helt på lagringen bakom. Ett delat GeoPackage på en nätverksdisk går sönder, medan PostGIS och molnbaserade plattformar hanterar samtidighet ordentligt. OrbGIS använder låsfri redigering där den senaste skrivningen gäller, så det finns inga utcheckningar att hålla reda på, och krockande skrivningar misslyckas tydligt i stället för i tysthet.
Räcker qgis2web?#
För några hundra objekt på en genuint publik karta som sällan uppdateras räcker det gott, och då ska du använda det. Så fort det handlar om behörigheter, återkommande uppdateringar eller stora datamängder gör det inte det, och tiden du lägger på att komma runt begränsningarna är bättre använd till att gå vidare i listan.
Vilket svar som är rätt beror på hur ofta ni publicerar, hur mycket teknik ni vill äga själva och vem som ska få se resultatet. Men fel svar är nästan alltid det ni redan gör av gammal vana: exporterar ännu en PDF för att alternativet känns som ett projekt.
Vill du se QGIS-vägen från början till slut går dokumentationen för Connector igenom installationen och den första synkningen. Du kan också testa OrbGIS gratis och publicera ett lager från ditt eget projekt redan i eftermiddag.
Få nya artiklar direkt till din inkorg
Vi hör av oss när vi publicerar något nytt — inget annat.