Lagerstilar i QGIS och Geoserver

I detta inlägg skall jag visa hur man skapar avancerade stilmallar till lager i QGIS och Geoserver. Jag använder QGIS 1.8 och Geoserver 2.2, som är de senaste versionerna för tillfället.

I QGIS har jag skapat ett enkelt väglager i en PostGIS databas med några vägar av olika typ. För att sätta symboliken på lagret så kan man antingen dubbelklicka på lagret eller högerklicka och välja ”Egenskaper”. Det är sedan under fliken ”Stil” som symbolerna skapas.

I bilden ovan så visas ”Enkel” symbolik, där man väljer en symbol som får representera alla objekt i lagret. Det går även att välja ”Kategoriserad” och ”Gradvis” symbolik som antingen använder en attributberoende kategori (ex landsväg/grusväg/motorväg) eller en symbol som delas in i olika intervaller där attributet man väljer faller inom dessa intervall. Oftast är det då fråga om siffror, exempelvis vägar som är mellan 0 och 3,5 meter breda visas med en symbol och vägar som är bredare än 3,5 meter visas med en annan.

Dessa alternativa stilar är enkla och snabba att få till, men de har sina begränsningar. Exempelvis går det inte att skapa symboler som beror på flera attribut samtidigt (grusväg smalare än 3,5 meter). För att klara detta så måste man använda ”Regelbaserad” symbolik (Rule-based).

Jag vill använda två attribut nämligen vägtyp och antal filer när jag skapar mina symboler så det blir till att skapa regler för hur dessa skall delas in.

Jag väljer ”Rule-Based” och lägger till och döper en regel för varje symboltyp jag vill ha med, det är enklast att börja så. Det kan även vara lämpligt att skapa en lämplig symbol för varje regel så att det blir visuellt tydligt vad man håller på med. Exakt hur detta går till tror jag att du kan klura ut själv, för det är inte så jättekrångligt om man har lite tålamod.

När jag skapat alla regler jag vill ha med så är det dags att bygga filter för dessa. Knappen med tre punkter vid fältet filter öppnar ett nytt fönster där man kan bygga sitt filter. Är man säker på vad man gör så går det att skriva in uttrycket direkt i fältet, men jag rekommenderar att man använder filterbyggaren.

Själva filtret byggs upp i Expression fältet och de variabler och operatorer som kan användas hittas i listan uppe till vänster. I bilden ovan så har jag dubbelklickat på ”Type” under Fields and Values, vilket lägger till denna i fönstret nedanför. På samma sätt kan man under operatorer leta reda på och dubbelklicka på likhetstecken (eller skriva in det manuellt). Jag vill sedan att detta filter skall användas för vägar som är av typen X, och genom att högerklicka på Type i listan uppe till vänster så kan man visa vilka värden som finns i ett fält till höger. Ett dubbelklick på ‘X’ lägger till detta i fältet i nederkant.

När man skall använda sig av flera attribut så måste man använda sig av ”Boolsk algebra”, som kombinerar olika delfilter på olika sätt. De vanligaste är AND och OR.

OR kan användas om jag exempelvis vill ha samma symbol för vägar typ X och vägar typ Y, uttrycket blir då: ”Type” = ‘X’ OR ”Type” = ‘Y’. I exemplet i bilden så vill jag istället att vägar av en viss typ och vägbredd skall se ut på ett visst sätt, så då använder jag operatorn AND i stället. Det är således bara objekt av typen X som har fler filer än 1 som passar just på filtret i bilden.

På liknande sätt bygger jag upp filter för alla regler och kontrollerar att det fungerar i QGIS tills jag är nöjd.

När jag är nöjd, så vill jag ju att lager som visas via Geoserver WMS skall se likadana ut, men QGIS kan inte spara till Geoserver, utan symboliken i Geoserver sätts med SLD filer (styled layer definition). I QGIS går det numera att exportera stilar som SLD filer, så processen är inte särskilt krånglig.

I Stilfliken som använts ovan finns en knapp som heter ”Spara Stil” (nere till höger). Här kan man välja att spara en fil i QGIS stilformat eller som SLD. Jag väljer naturligt vis SLD för att skapa en fil till Geoserver och sparar den på en lämplig plats.

I Geoserver så har jag redan skapat workspace, store och layer för vägarna i PostGIS databasen och sett att detta fungerar med Open Layers.

Som bilden visar så är det omöjligt att se skillnad på de olika vägtyperna om man inte klickar på dem för att få fram attributen.

Jag börjar med att importera min SLD fil under ”Styles” i Geoserver. Klicka på Add a new Style och fyll i ett namn och välj workspace, men i stället för att kopiera och modifiera en befintlig stil så bläddrar jag efter min SLD fil och laddar upp den till servern. Innehållet i filen visas i det stora fältet på sidan och genom att klicka på ”Validate” så skall man förhoppningsvis få en grön skylt och ett OK, och då är det bara att trycka på ”Submit”.

I inställningarna för mitt väglager så klickar jag sedan på fliken ”Publishing”. Lite längre ner på Publishing sidan så finns ”Default Style” under rubriken WMS. Där väljer jag nu min nyss skapade stil, som då även visas förhandsgranskat. Sedan är det bara att klicka på ”Save” och på nytt granska lagret via Open Layers.

Som ni kan se i bilden så är nu mina vägar symboliserade på precis samma sätt som i QGIS. För att slutligen testa allt så lägger jag till WMS lagret i QGIS och kan på så sätt direkt jämföra utseendet på WMS tjänsten och det som kommer direkt från PostgreSQL databasen. Och jadå symboliken är den samma. Det som återstår nu kan vara att laborera lite med linjetjocklekar och andra detaljer, så att WMS lagret blir så trevligt som möjligt att titta på för användarna. Detta kan göras antingen i QGIS med export och import av nya SLD filer för att ersätta den gamla i Geoserver. Är stilmallen inte allt för avancerad och ändringarna få, så går det dock snabbare att redigera SLD filen direkt i Geoserver.
Lycka till!

Annonser

Taggar:, , , , ,

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: