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 tweede UserStyle-element bevatten. Daarvan moet het Name-element altijd de waarde 'select' hebben (kleine letters, zonder aanhalingstekens). Het optionele UserStyle-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 tweede UserStyle-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 de Rules van het onderdeel FeatureTypeStyle in de laatste Rule 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 onderdeel FeatureTypeStyle 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 onderdeel FeatureTypeStyle 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 een FeatureTypeStyle-element staan.


Vorige versie van deze pagina: Versie 4.5