Richtlijnen voor SLD-bestanden
In WGP Beheer kun je de weergavestijl van een vectorlaag (WFS en WFST) definiëren door er een SLD-bestand aan te koppelen. WGP gebruikt daarbij de functionaliteit van OpenLayers om de stijldefinitie in het SLD-bestand te ondersteunen.
Om in WGP een SLD-bestand goed te kunnen gebruiken, moet de stijldefinitie aan de volgende eisen voldoen:
- De SLD voldoet aan de eisen die Openlayers eraan stelt.
De naam van een tweede UserStyle-element (optioneel) moet altijd '
select
' zijn.Optioneel mag het
NamedLayer
-element van het SLD-bestand een tweedeUserStyle
-element bevatten. Daarvan moet hetName
-element altijd de waarde 'select'
hebben (kleine letters, zonder aanhalingstekens). Het optioneleUserStyle
-element met de naam 'select
' gebruik je om geselecteerde objecten weer te geven.Het onderstaande voorbeeld geeft aan hoe je voor de WFS-laag '
Laadpunten
' met het tweedeUserStyle
-element een andere stijl voor de geselecteerde objecten definieert:<?xml version="1.0" encoding="UTF-8"?> <sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0.0"> <NamedLayer> <sld:Name>Laadpunten</sld:Name> <UserStyle> <sld:Name>default</sld:Name> <sld:FeatureTypeStyle> ...gewone stijl... </sld:FeatureTypeStyle> </UserStyle> <UserStyle> <sld:Name>select</sld:Name> <sld:FeatureTypeStyle> ...selectstijl... </sld:FeatureTypeStyle> </UserStyle> </NamedLayer> </sld:StyledLayerDescriptor>
Deze stijl wordt alleen gebruikt voor de geselecteerde features van een WFS-laag, niet voor de features waarvan je aanwijsinformatie (feature-info on-hover) opvraagt.
Het eerste
UserStyle
-element in de SLD wordt altijd als default-stijl gebruikt.De definitie van een onder- of bovengrens in een filter mag geen witruimtes bevatten.
Bij het gebruik van een SLD-bestand mag de definitie van een onder- of bovengrens in een filter (elementen
<ogc:LowerBoundary>
en<ogc:UpperBoundary>
) geen witruimte (spaties, tabs of harde returns) bevatten. OpenLayers beschouwt deze witruimte namelijk als onderdeel van de filterwaarden.De volgende filtercode werkt niet vanwege de witruimte tussen de XML-elementen:
<ogc:LowerBoundary> <ogc:Literal>0</ogc:Literal> </ogc:LowerBoundary>
Indien je de witruimte uit de code weghaalt, werkt het filter wel:
<ogc:LowerBoundary><ogc:Literal>0</ogc:Literal></ogc:LowerBoundary>
Bij een bewerkbare laag (databron
WFST
in WGP advanced) moeten deRules
van het onderdeelFeatureTypeStyle
in de laatsteRule
het element<ElseFilter>
bevatten.De functionaliteit voor het bewerken van vectorlagen is alleen beschikbaar in WGP advanced.
Sommige SLD's maken het bewerken van een geometrie van een vectorlaag (WSLT-laag) onmogelijk omdat de stijldefinitie de aangrijppunten ('handles') uit de laag verwijdert waarmee je een geometrie kunt wijzigen.
De
<Rule>
-elementen in het onderdeelFeatureTypeStyle
van een SLD-bestand vormen de regels die bepalen wat er in de kaartlaag te zien is. De SLD filtert alles wat niet voldoet aan deze regels uit de kaartlaag, inclusief deze 'handles' waarmee je een geometrie kunt wijzigen. Door de volgende extra regel aan het eind van het onderdeelFeatureTypeStyle
toe te voegen kun je dit voorkomen en zijn de geometrieën van de laag weer te bewerken:<Rule> <ogc:ElseFilter/> </Rule>
Deze regel zorgt ervoor dat alle features die niet aan de voorgaande regels voldoen toch worden getekend. Nu worden ook weer de 'handles' voor het wijzigen van een geometrie getoond.
Attentie!
De
ElseFilter
-regel moet altijd als allerlaatste in eenFeatureTypeStyle
-element staan.
Vorige versie van deze pagina: Versie 4.5