Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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 4

2 Oefeningen: 5

2.1 Voorbereiding QGIS project en data 5

2.2 Een eenvoudige stijl aanmaken en export naar Geoserver 6

(GeoCatBridge) 6

2.3 Style met filter ( StyleViewer) 10

2.3.1 Bekijken van de stijling in de Geoserver 14

2.4 Sld: stack points (WMS lagen) 14

2.5 Sld: charts ( WMS lagen) 18

2.5.1 Piechart 18

2.5.2 BarChart 19

2.6 Styling WFS lagen 20

2.6.1 WFS library 21

2.6.2 ONEMAP: wfs style toevoegen aan kaartlaag 21

2.6.3 Gebruik van external graphic in sld voor wfs laag 23

3 Handige links 24

4 Tips en Tricks – samenvatting 25

  1.  Inleiding

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

Voorbeeld van een basis style 

 <?xml version="1.0" encoding="ISO-8859-1"?>

 2<StyledLayerDescriptor version="1.0.0"

 3    xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"

 4    xmlns="http://www.opengis.net/sld"

 5    xmlns:ogc="http://www.opengis.net/ogc"

 6    xmlns:xlink="http://www.w3.org/1999/xlink"

 7    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 8  <NamedLayer>

 9    <Name>Simple point</Name>

10    <UserStyle>

11      <Title>Geoserver SLD Cook Book: Simple point</Title>

12      <FeatureTypeStyle>

13        <Rule>

14          <PointSymbolizer>

15            <Graphic>

16              <Mark>

17                <WellKnownName>circle</WellKnownName>

18                <Fill>

19                  <CssParameter name="fill">#FF0000</CssParameter>

20                </Fill>

21              </Mark>

22              <Size>6</Size>

23            </Graphic>

24          </PointSymbolizer>

25        </Rule>

26      </FeatureTypeStyle>

27    </UserStyle>

28  </NamedLayer>

29</StyledLayerDescriptor>

  1. Oefeningen:

    1. Voorbereiding QGIS project en data

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 

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 + jouw naam)

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

  • Herhaal het voor alle lagen

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

  1. Een eenvoudige stijl aanmaken en export naar Geoserver  

(GeoCatBridge)

  • 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 :

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

Inlog: Opendag2024

Ww: Opendag2024#1

Op de Geoserver bevindt zich reeds een aangemaakte Omgeving met databron
( Bron : Postgis) 

      

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

  • Ga terug naar QGIS project en open BridgeTool 

  • Ga in Bridge naar Tabblad: Servers/ klik op ‘Cursus_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.

  • 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”

 

De symbologie en kaartlaag wordt naar Geoserver gepubliceerd.

  • Ga naar de Geoserver en bekijk de laag:

  1. Style 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

Aan de rechterkant verschijnt de StyleViewer. 

  • Klik op tab ‘SLD’:

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.

<Opacity> is een transparency ( 0-1). De namen van de rest van de parameters spreken voor zich.

Je zou kunnen deze SLD kopiëren naar de tekst editor, het handmatig aanpassen en weer opslaan en 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) :

 

Je ziet dat de ‘inhoud’ is opgegeven in dm3 of in m3.

We kunnen de gegevens in de tabel niet aanpassen maar we gaan 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 

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

  • Verwijder met 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 .

Waarschuwing verschijnt

  • Klik op ‘Ja’ 

  1. Bekijken van de stijling in de Geoserver 

  • Ga naar de Voorvertoning en bekijk jouw lagen

  1. Sld: stack points  (WMS lagen) 

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

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

  • Kijk nu in de SLD styler naar de xml. 

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

Daarom gaan we een bestande SLD gebruiken.

  • Ga naar de Geoserver/Stijlen

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

  • 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 style

  • Sla de aanpassingen op

  • Bekijk de laag in Voorvertoning

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

  • 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 )

 

  • Bekijk de sld:

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

  1. BarChart 

  • Doe dezelfde oefeningen als met de PieChart.

Gebruik hierbij de sld:

C:\OpenDag_SLD_workshop\Sld_ori\Workshop_Bar_chart_Buurt_allochtonen_wag_Inzoomen.sld

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

  • Bekijk de style in Voorvertoning

Bekijk de SLD

  1. 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.

  1. WFS library 

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

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

  1. ONEMAP: wfs style toevoegen aan kaartlaag

Eerst gaan we een nieuwe kaart in OneMap aanmaken 

  • Ga naar de kaart:

Log in met ( xxx 🡺 vervang door een juiste nummer)

User: workshop_sld_xxx

Ww: Workshop_sld_x#1

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

( gebruik optie “Opslaan als” )

Nu voegen wij een laag aan OneMap toe 

  • Ga naar Kaartlagen/Kaartlaag toevoegen

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

  • 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.

  • Bekijk de kaartlaag het in de viewer

  1. 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.

  • Scrol naar beneden en onder SLD reader klik op  ‘Live demos’:

  • Klik op “Flags of Benelux Countries” en kopiëer 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. 

  • 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’.

  • Publiceer de SLD 

  • Bekijk het WFS-bestand in de viewer

  1. 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   

  1. Tips en Tricks – samenvatting

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

  • Werkt de SLD van StyleViewer niet?

  •  Pas het aan in een texteditor, gebruik hiervoor bv de code/Rules uit bestaande SLD. Het gaat meestal mis bij de < Filters> en <Symbolizers>

  • 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

  • No labels