Stilsätta Geoserver med QGIS

Stilsätta Geoserver med QGIS

QGIS är utmärkt att stilsätta kartografiska teman. Genom export av SLD filer kan stilsättningen direkt användas i Geoserver och på så sätt publiseras som webb-tjänst

QGIS

Börja med att ansluta en datakälla i QGIS som ska vara densamma som för Geoserver.

När datakällan är ansluten så högerklickas anslutningen eller underliggande scheman. I menyn så väljs “Kör SQL”. Klistra in en SQL fråga som är väl utprovad. Se till att inge extra tecken finns med som t.ex. ;. Samma fråga kommer att användas i Geoserver. Viktigt att de attribut som ska användas för stilsättning finns med i frågan och att de är distinkta.

image-20240528-120956.png

Kör sedan frågan och kontrollera att tabellen ser bra ut. Därefter klickas “Ladda in som lager”. Klicka ID-kolumn och geometri-kolumn samt ge lagret ett distinkt namn som motsvarar stilsättning. Klicka på “Läs in lager”

image-20240528-121629.png

Nu är det klart att stilsätta lagret. Den här dokumentation går inte igenom själva stil-sättningen men tar upp några konsekvenser. Det finns många symboler som följer med QGIS och ännu fler finns i bibliotek hos Viamap. När dessa symboler används så refereras de till symbolens fil och som kommer synas när vi sparar stilen som en .sld.

image-20240528-130115.png
image-20240528-131329.png

Geoserver

Symbolerna som användes i QGIS kopieras till Geoserver:s datakatalog. I detta fall GEOSERVER_DATA_DIR=C:\opt\Ikartan\Applications\geoserver\data_dir. Geoserver leter i första hand efter symbolerna i ./styles och andra hand i ./workspaces/<mitt workspace>/styles. Det är en fördel att ha symbolerna knutna till ett workspace. I detta fall kopieras de till ./workspaces/skfab/styles fär även SLD-filerna kommer att ligga. I SLD-filen behövs det inte finnas någon sökväg när de ligger direkt i katalogen styles.

I Geoserver administration så öppna stilar och väljer ny stil. Stilen ges ett namn, ‘skador_skjul’ och kopplas till ett workspace ‘skfab’. SLD-filen från QGIS hämtas eller texten från denna kopieras in i redigeraren. Sökvägen till SVG symbolen tas bort (se bilden) och stilen sparas. Den får namnet skfab:skador_skjul och kommer att ligga i samma katalog som symbolerna.

image-20240528-134931.png

Nu ansluts datakällan till Geoserver, samma som för QGIS. Det kopplas till workspace skfab i detta fall.

Nästa steg är att publicera ett kartlager. Välj Lager och klicka på ‘Lägg till ett nytt lager’

image-20240528-181233.png
image-20240528-181434.png

Välj rätt datakälla och klicka sedan ‘Konfigurera en ny SQL-vy…’

Skriv in lagrets namn och klistra in samma SQL fråga som användes i QGIS. Klicka på ‘Uppdatera’ så körs fråga och kolumnerna visas i nedre delen. Kryssa i vilken kolumn som är ID, typ av geometri samt projektion. När spara-knappen klickas så kommer publicerings-formuläret upp och konfigureras som vanligt

  • Under datafliken skrivs eventuellt en beskrivning och begränsnings-rutor fylls i eller beräknas från datat.

  • Under publiceringsfliken så anges under WMS, standard stil och eventuella alternativa stilar

  • Klicka på publicera för att färdigställa

image-20240528-182519.png
image-20240528-183846.png

Nu ka lagret förhandsgranskas. Använd Openlayers

image-20240528-184208.png

Notera

Det finns grafik som kan göras i QGIS men där det in finns stöd i SLD och Geoserver

Det finns grafiska tillägg i Geoserver såsom kluster och heatmap som inte stöds av QGIS

Men den mesta av kartografin går utmärkt att använd QGIS för att stilsätta i Geoserver

Tillgång till SVG symboler

I Dropbox finns ett helt bibliotek med symboler under:

…\ViaMap_Gemensam\Weave\fontawesome-pro-5.5.0-web\svgs

De kan kopieras till lämplig katalog för användning. Om Dropbox plugin är monterad i lokala datorn så kan filhanteraren användas för att se SVG-symbolerna grafiskt om de visas som ‘stora ikoner’

image-20240529-063605.png

 

För att använda symbolen i QGIS och Geoserver med möjlighet att sätta färger för fyllnad och linjer så måste den modifieras. Orgignal så ser en fil ut så här:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"/> </svg> <!-- Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License)

Följande kod läggs till inom elementet <path />

fill="param(fill)" fill-opacity="param(fill-opacity)" stroke="param(outline)" stroke-opacity="param(outline-opacity)" stroke-width="param(outline-width)"

Resultatet blir

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> <path d="M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z" fill="param(fill)" fill-opacity="param(fill-opacity)" stroke="param(outline)" stroke-opacity="param(outline-opacity)" stroke-width="param(outline-width)" /> </svg> <!-- Font Awesome Pro 5.5.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) -->

Nu kan den klar att användas

 

Symboler

Skadegörelse

exclamation.svg

Inbrott/Stöld

mask.svg eller user-secret.svg

 

Vattenskada

water.svg

Brand

fire-smoke.svg eller burn.svg eller flame.svg