Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Vooraf

Hartelijk welkom bij deze korte workshop “SLD: Tips en tricks”.

Leerdoelen

Aan het eind van de training

...

Weet je welke tools gebruikt kunnen worden om de data in de database en Geoserver te importeren

...

Kun je zelf aan de slag met Bridge Tool en Style Viewer

...

Je kent de opbouw van een SLD

...

Vooraf

Hartelijk welkom bij deze korte workshop “SLD: Tips en tricks”.

Leerdoelen

Aan het eind van de training

  • Weet je welke tools gebruikt kunnen worden om de data in de database en Geoserver te importeren

  • Kun je zelf aan de slag met Bridge Tool en Style Viewer

  • Je kent de opbouw van een SLD

  • Je kent de mogelijkheden om de SLD’s aan te passen

  • Je kan mooie SLD’s maken voor WMS: o.a. Stacked Points en Chart 

  • SLD voor WFS in Onemap: je weet welke opties er beschikbaar zijn voor een SLD voor WFS (SLD library voor Onemap)

1. Inleiding

Om de lagen in Geoserver te stylen wordt

Note

Let op:

Op de geoserver zijn de volgende Extensions geïnstalleerd:

  • Importer extension ==> om data en stijl met GeoCatBridge naar geoserver te publiceren

  • Chartextension ==> om charts in stijl te gebruiken

1. Inleiding

Om de lagen in Geoserver te stylen wordt meestal een xml SLD style document gebruikt. 

...

2.1 Voorbereiding QGIS project en data

Info

LET OP:

  • Wanneer de data met GeoCatBridge  naar Geoserver wordt gepubliceerd, wordt er altijd in Geoserver een nieuwe Omgeving en Bron aangemaakt. Namen van de Omgeving en Bron in Geoserver worden hetzelfde als de naam van jouw QGIS project. 

  • Bestaande Workspace, Bron en data/styles  ( met hetzelfde naam) worden ALTIJD  overgeschreven

  • Laag die bestaat in een Workspace/Bron maar niet meer in de QGIS project wordt verwijderd uit Geoserver maar de tabel blijft bestaan in database 

...

Info

Voor selfstudie:

Download data: https://data.nieuwland.nl/index.php/s/MbRMgtb9Jwp4des

ww: slddata_workshop

Om de data in de database en op de Geoserver van andere cursisten niet te overschrijven ga je de QGIS project en de data opnieuw opslaan met een andere naam (voeg overal eigen naam erbij ) :

  • Open in QGIS een project : c://OpenDag_sld_workshop/Workshop_SLD_ori

  • Sla het project opnieuw als: c://OpenDag_sld_workshop/‘Workshop_sld_jouwnaam

  • Exporteer vervolgens alle lagen naar een locatie: (C:\OpenDag_SLD_workshop\workshop_x\Data\Originelebestandsnaam + jouwnaam)

  • en hernoem de lagen (rechter muisknop/Exporteren/ObjectenOpslaan). I.p.v.: _naam* gebruik _jouwnaam

  • Herhaal het voor alle lagen, behalve 'pastel’ laag

  • Verwijder de originele lagen uit het project zodat er alleen de lagen met jouw naam over blijven

...

  • Ga bij de kaartlaag: ‘Bomen_centrum_naam’ naar Eigenschappen/Symbologie en maak een mooie simple symbologie aan ( denk bv aan de dikte en kleur van de lijn rondom een punt die je kunt aanpassen, zet de units naar pixels om).

  • Ga nu naar Geoserver :

Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#ABF5D1

url: https://Geoserver-cursus.webgispublisher.nl

Inlog: Opendag2024

Ww: Opendag2024#1

Op de Geoserver bevindt zich reeds een aangemaakte Omgeving met databron
( Dataron type: PostGIS) 

Deze Databron is wordt een soort template voor de Omgeving die door Bridge wordt aangemaakt wanneer je de lagen naar Geoserver exporteert.

...

  • Ga in Bridge naar Tabblad: Servers /en klik op ‘CursusCursus_open_dag’

  • Hier zie je instellingen van “Cursus Geoserver”, met als ‘Storage’ optie: Import into PostGIS database ( managed by Geoserver) “.  

  • De datastore in Bridge verwijst naar de reeds aangemaakte Datastore/Bron  in Geoserver.

Image Modified

  • Ga in BridgeTool naar tabblad: ‘Publish’ en vink alle lagen uit behalve ‘Bomen_centrum_naam*’ laag.

  • Kies de juiste dataserver ( wij hebben er hier maar een)

  • En klik op “Publiceren”

...

  • Ga naar de Geoserver en bekijk de laag:

...

2.3 Style aanmaken voor een kaartlaag met filter ( StyleViewer) 

  • Ga in QGIS naar de kaartlaag: ‘Containers_Wageninen_naam*

  • Bekijk de style van de laag zoals het nu is, met de TOOL  “StyleViewer”

(ga in TOOLBAR naar WEB/GeocatBridge/StyleViewer

Image Modified

Aan de rechterkant verschijnt de StyleViewer. 

...

Je ziet de style van onze kaartlaag in xml formaat.
Een legenda eenheid is aangegeven van <Rule> tot </Rule>
We zien hier als symbool een simple point symbolizer met verschillende parameters.

...

Je zou kunnen deze SLD kopiëren naar de tekst editor, het eventueel handmatig aanpassen en weer opslaan en vervolgens toevoegen aan Geoserver.

  • Via Eigenschappen/Symbologie pas je de stijl van de laag “Containers_Wageningen_naam* als volgt aan (kies Categorieen  en als Waarde: Inhoud) :

...

We kunnen de gegevens in de tabel niet aanpassen maar we gaan WEL de gegevens groeperen in de legenda aanpassen.

  • Als legenda type kies: Regel-gebaseerd

  • Dubbel klik op de eerste regel 

...

  • Pas de filter aan zodat alle Containers met inhoud = 4 m3 een kleur krijgen 

Code Block
"inhoud" = 4 OR "inhoud" = '4,0' OR "inhoud" = 4000

Image Modified

  • Doe hetzelfde voor de Containers met een inhoud van 5 m3

  • Verwijder met de rode -- legenda eenheden die nu opgenomen zijn in de 4 m3 en 5m3 symbolen.

...

  • Klik op ‘Toepassen’ en OK 

  • Bekijk de styling in de SLD Styler: in elke <Rule> is een tag <ogc:Filter> bijgekomen.

...

  • Publiceer alle lagen in het QGIS project naar Geoserver .

Image Modified

Waarschuwing verschijnt

...

  • Klik op ‘Ja’ 

2.3.1. Bekijken van de stijling in de Geoserver 

  • Ga naar de Voorvertoning en bekijk jouw lagen

2.4 Sld: stack points  (WMS lagen) 

In SLD kunnen ook functies gebruikt worden. Wij gaan nu een paar stijls/sld met functies voor WMS lagen gebruiken. Bv stack point, om punten te groeperen.

...

  • In QGIS bij de laag met bomen kies  ‘Cluster punten’ symbologie .

Image Modified

  • Kijk Bekijk nu in de SLD styler naar de xml van deze stijl

U ziet dat de stack point symbologie hier niet wordt opgenomen. 

Daarom gaan we een bestande andere, bestaande SLD gebruiken om een nieuwe style in geoserver aan te maken voor onze bomen laag.

  • Ga naar de Geoserver/Stijlen

  • Voeg een nieuwe stijl toe ( kopieer de code uit de bestaande stackpoint SLD, locatie Locatie SLD:) 

...

Image Modified

  • Geef de styling een naam: “Workshop_SLD_stackedpoint_bomen_naam*”

  • Opslaan

  • Ga naar de laag met Bomen 

  • Voeg de stijl die nu aan de bomen kaartlaag is toegevoegd als Extra stijl en de nieuwe stacked style als een standard standaard style

  • Sla de aanpassingen op

  • Bekijk de laag in Voorvertoning

Image Modified

  • Vergelijk het met oorspronkelijke style door in de voorvertoning window de oorspronkelijke style te kiezen (klik op de drie punten aan de linkerkant om “Styles” te kunnen kiezen)

...

Image Modified

  • Ga terug naar de sld en , bekijk deze.

  1. Sld: charts  ( WMS lagen)

  1. Piechart

LET OP: Om deze styling te kunnen gebruiken op Geoserver dient chart extension geïnstalleerd zijn

 

  • Maak in de Geoserver een nieuwe style aan zoals beschreven in oefening 2.4 pagina 15. Gebruik hierbij SLD C:\OpenDag_SLD_workshop\Sld_ori\ Workshop_SLD_Piechart_buurt_leeftijd_inzoomen.sld

  • Past de naam van de sld aan: 

Workshop_SLD_Piechart_buurt_leeftijd_inzoomen_naam

  • Voeg deze style aan jouw “Buurten” laag, Save de laag en bekijk het in Voorvertoning (Let op : zoom in )

Image Removed

 

Image Removed

  • Bekijk de sld:

In PieChart wordt er als graphic <Online resource> gebruikt met variable.


Panel
panelIconIdatlassian-info
panelIcon:info:
bgColor#ABF5D1
  • In  stacked point sld voor rendering van de data worden gebruikt:   

    • Meerdere functies voor <Transformation>

    • <ogc:Filter>

    • <ogc:PropertyName>count</ogc:PropertyName>
      De ‘Count’ is een standaard variabel en deze kolom hoeft niet in de data/tabel aanwezig te zijn.

2.5 Sld: Charts  ( WMS lagen)

In deze oefeningen gaan we de chart sld’s te maken.

2.5.1 PieChart

Note

LET OP: Om deze styling te kunnen gebruiken op Geoserver dient ‘Chart extension’ geïnstalleerd zijn

  • Maak in de Geoserver een nieuwe style aan zoals beschreven in oefening 2.4 .
    Gebruik hierbij SLD C:\OpenDag_SLD_workshop\Sld_ori\ Workshop_SLD_Piechart_buurt_leeftijd_inzoomen.sld

  • Past de naam van de sld aan: 

Workshop_SLD_Piechart_buurt_leeftijd_inzoomen_naam

  • Voeg deze style aan jouw “Buurten” laag, sla de laag op en bekijk het in Voorvertoning (Let op : zoom in )

Image Added

Image Added

  • Bekijk de sld:

In PieChart wordt er als graphic <Online resource> gebruikt met meerdere variabeles:

Info

<OnlineResource

xlink:href="http://chart?cht=p&amp;chf=bg,s,FFFFFF00&amp;chd=t:${p_00_14_jr},${p_15_24_jr},${p_25_44_jr},${p_45_64_jr},${p_65_eo_jr}&amp;chl=0-14 | 15-24 | 25 - 44 | 45-64 | >65 &amp;&amp;chs=350x250&amp;chco=0000ff,ff0000&amp;chtt=Leeftijd;&amp;" />

 

cht=p ==> Type Chart

chd=t:${p_00_14_jr},${p_15_24_jr},${p_25_44_jr},${p_45_64_jr},${p_65_eo_jr}  ==> Chart data ( kolom namen )

chl=0-14 | 15-24 | 25 - 44 | 45-64 | >65 = > Label

chtt=Leeftijd ==> Title

2.5.2 BarChart 

  • Doe dezelfde oefeningen als met de PieChart.

...

  • Voeg deze style als een alternatieve style in ‘buurten’ laag, 

  • Bekijk de style in Voorvertoning

...

Bekijk de SLD

2.6 Styling WFS lagen

Voor de WFS lagen in Onemap kan de styling uit SLD Styler gebruikt worden. Echter de keuze om de WFS lagen te stijlen is gelimiteerd.

2.6.1 WFS library 

Bij de WFS styling in Onemap wordt een open source (door Nieuwland aangeboden)  library gebruikt. 

  • Ga naar de https://github.com/nieuwlandgeo/sldreader

  • Scrol naar beneden.
    Onder de kop Restrictions on supported SLD Features zijn de stijling opties voor point, line en polygoon Symbolizers beschreven.

2.6.2 ONEMAP: wfs style toevoegen aan kaartlaag

Eerst gaan we een nieuwe kaart in OneMap aanmaken aanmaken, vervolgens laag toevoegen en sld.

...

Ww: Workshop_sld_x#1

  • Sla deze templatekaart template kaart opnieuw op met de naam: Workshop - SLD – Jouwnaam*

( gebruik optie “Opslaan als” )

Nu voegen wij een laag aan OneMap toe 

  • *

( gebruik optie “Opslaan als” )

Note

Let op: Als je bij deze optie “Opslaan als” gebruikt, blijf je wel in de originele kaart, je wordt niet 'verwezen 'naar de nieuwe kaart

  • Ga naar de nieuwe kaart

  • Ga naar Kaartlagen/Kaartlaag toevoegen

...

  • Voeg uit geoserver  jouw laag met containers als WFS aan Onemap toe (kies: Mapservice “Cursus_GS (wfs) “)

Image Modified

  • Voeg meteen de nieuwe laag aan jouw kaart (klik op “Laag toevoegen aan kaart” en kies de juiste kaart )

  • Klik op “Opslaan”

  • Ga nu naar de ‘Stijl’ tab en kies als ‘Stijltype’ een ‘SLD-bestand’

...

  • Ga nu naar QGIS 

  • Kopiëer ( ctrl A + ctrl C)  uit StyleViewer SLD code voor de laag: “containers_Wageningen_naam” en “Paste” het in de SLD Onemap.

  • Publiceer kaartlaag

  • Bekijk de kaartlaag het in de viewer

2.6.3 Gebruik van external graphic  in sld voor wfs laag 

We gaan nu  in de SLD uit vorige oefening een symbool voor Containers met inhoud van 4 m3 vervangen door symbool met external graphic (png), door eerst SLD aan te passen en vervolgens een symbool aan SLD toe te voegen.

...

Image Modified

  • Klik op “Flags of Benelux Countries” en kopiëer kopieer uit de SLD onder de <PointSymbolizer> de hele tag < Graphic> ( van <Graphic> tot </Graphic> )

...

  • In Onemap in de SLD voor containers (wfs) vervang in de bovenste <Rule> het hele stuk van <Graphic> t/m </Graphic> met de gecopieerde code. 

  • Vervolgens pas de volgende tags aan:

<Rotation>:

Van 

...

Naar 

...

< Size>:

Van

...

Naar 

...

De link naar het symbool dient ook aangepast worden. We gaan de symbool die aan de Onemap is toegevoegd gebruiken.

  • In Onemap ga naar “Bestanden” / workshop_stijl en klik op de xxx.png bestand

  • Klik op ‘Directe link’

...

  • In SLD vervang de link in ‘href’ .door de net opgehaalde link

Image Modified

  • Publiceer de SLD 

  • Bekijk het WFS-bestand in de viewer

3. Handige links

  • Voor meer informatie over creating stacked points zie 

https://www.cadlinecommunity.co.uk/hc/en-us/articles/360007541578-Geoserver-Creating-Stacked-Points

  • Voor meer informatie over chart styling zie :

https://docs.Geoserver.geo-solutions.it/edu/en/pretty_maps/charting.html   

  • link naar de github library Onemap

https://github.com/nieuwlandgeo/sldreader   

  • https://docs.Geoserver.org/2.25.x/en/user/styling/webadmin/index.html

4. Tips en Tricks – samenvatting

  • Gebruik StyleViewer van GeoCat om SLD’s aan te maken ( En evt GeoCatBridge om het naar Geoserver te versturen)

...

  • Voor WFS-lagen: controleer op https://github.com/nieuwlandgeo/sldreader of Onemap jouw stijl ondersteunt.

...

  • Gebruik online resources bv OSM symbolen, zie https://wiki.openstreetmap.org/wiki/OpenStreetMap_Carto/Symbols

  • Let op: als je bij het aanmaken van een SLD een code uit andere SLD’s gebruikt, zorg dan dat er geen verschillende ‘prefixes’ in jouw SLD zijn.

...

Verschillende tools om een SLD aan te maken gebruiken verschillende prefixes bijvoorbeeld:

 

  1. Geen prefix:

...

  1. <Sld:> prefix

...

  1. <Se:> Prefix

...