SLD-voorbeelden
- Arjen Kopinga
- wvandooremolen
Hieronder staan enkele voorbeelden van de mogelijkheden voor opmaak met een SLD (Styled Layer Descriptor) xml. De codevoorbeelden onder de afbeeldingen zijn uitvouwbaar.
Opmaken huisnummers verblijfsobjecten
De laag bag:verblijfsobject
uit de PDOK BAG WFS heeft huisnummers, huisletters en toevoegingen, maar die staan in drie losse velden. Je wil deze wel als 1 label tonen in de viewer. Hieronder een voorbeeld-SLD die dit doet waarbij toevoegingen met een streepje aan het huisnummer worden geplakt en huisletters er direct achter worden gezet.
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>Adreslabel</Name>
<UserStyle>
<Name>Adreslabel</Name>
<FeatureTypeStyle>
<Rule>
<!--
Als toevoeging niet NULL of leeg is, maak dan label op
als {huisnummer}{huisletter}-{toevoeging}
-->
<ogc:Filter>
<ogc:Not>
<ogc:Or>
<ogc:PropertyIsNull>
<ogc:PropertyName>toevoeging</ogc:PropertyName>
</ogc:PropertyIsNull>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>toevoeging</ogc:PropertyName>
<ogc:Literal></ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Or>
</ogc:Not>
</ogc:Filter>
<TextSymbolizer>
<!--
Je kan PropertyName elementen en tekst mixen in een label.
Alle losse fragmenten worden van whitespace gestript en
aan elkaar geplakt.
-->
<Label>
<ogc:PropertyName>huisnummer</ogc:PropertyName>
<ogc:PropertyName>huisletter</ogc:PropertyName>
-
<ogc:PropertyName>toevoeging</ogc:PropertyName>
</Label>
<Font>
<!--
Let op: gebruik SLD v1.0.0 syntax met CssParameter
i.p.v. SvgParameter. De viewer kan beide tonen,
maar mapfish print snapt alleen v1.0.0 syntax.
-->
<CssParameter name="font-family">sans-serif</CssParameter>
<CssParameter name="font-size">12</CssParameter>
</Font>
<Fill>
<CssParameter name="fill">#000000</CssParameter>
</Fill>
</TextSymbolizer>
</Rule>
<Rule>
<!--
In alle andere gevallen, maak label op
als {huisnummer}{huisletter}.
-->
<ElseFilter />
<TextSymbolizer>
<Label>
<ogc:PropertyName>huisnummer</ogc:PropertyName>
<ogc:PropertyName>huisletter</ogc:PropertyName>
</Label>
<Font>
<CssParameter name="font-family">sans-serif</CssParameter>
<CssParameter name="font-size">12</CssParameter>
</Font>
<Fill>
<CssParameter name="fill">#000000</CssParameter>
</Fill>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Tweekleurenstreepjespatroon
Het is in Onemap mogelijk om meerdere symbolizers per rule op te geven, deze worden dan in volgorde van boven naar beneden getekend. Zo kan je een tweekleurenstreepjespatroon maken door een streepjespatroon boven op een gekleurde lijn te laten tekenen.
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/se"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd"
xmlns:se="http://www.opengis.net/se" version="1.1.0"
xmlns:ogc="http://www.opengis.net/ogc">
<NamedLayer>
<Name>Lijnen</Name>
<UserStyle>
<Name>Tweekleurenstreepjes</Name>
<FeatureTypeStyle>
<Rule>
<LineSymbolizer>
<Stroke>
<SvgParameter name="stroke">#FFFF00</SvgParameter>
<SvgParameter name="stroke-width">4</SvgParameter>
</Stroke>
</LineSymbolizer>
<LineSymbolizer>
<Stroke>
<SvgParameter name="stroke">#4400AA</SvgParameter>
<SvgParameter name="stroke-width">4</SvgParameter>
<SvgParameter name="stroke-dasharray">4 10</SvgParameter>
</Stroke>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Gebruik van Graphic marks
Met het gebruik van Graphic Marks kunnen eenvoudige symbolen als vulpatroon worden toegevoegd aan de sld. Voorbeelden van eenvoudige symbolen zijn : backslash, square, circle… Op deze manier kan arcering en andere 'hatch' patronen worden toegevoegd.
<?xml version="1.0" encoding="utf-8"?>
<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd">
<NamedLayer>
<Name>perceel</Name>
<UserStyle>
<Title>perceel</Title>
<FeatureTypeStyle>
<Rule>
<Name>0 - 150</Name>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>0</ogc:Literal>
</ogc:PropertyIsGreaterThanOrEqualTo>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>150</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<Mark>
<WellKnownName>backslash</WellKnownName>
<Fill>
<CssParameter name="fill">#30123b</CssParameter>
<CssParameter name="fill-opacity">1.0</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#30123b</CssParameter>
<CssParameter name="stroke-width">1.4</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
</Stroke>
</Mark>
<Opacity/>
<Size>4</Size>
<Rotation>0</Rotation>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#30123b</CssParameter>
<CssParameter name="stroke-width">1.6428571428571428</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
<CssParameter name="stroke-linejoin">bevel</CssParameter>
<CssParameter name="stroke-linecap">square</CssParameter>
</Stroke>
<PerpendicularOffset>0.0</PerpendicularOffset>
</LineSymbolizer>
</Rule>
<Rule>
<Name>150 - 300</Name>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>150</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>300</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<Mark>
<WellKnownName>backslash</WellKnownName>
<Fill>
<CssParameter name="fill">#28bceb</CssParameter>
<CssParameter name="fill-opacity">1.0</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#28bceb</CssParameter>
<CssParameter name="stroke-width">1.4</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
</Stroke>
</Mark>
<Opacity/>
<Size>8</Size>
<Rotation>0</Rotation>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">1.6428571428571428</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
<CssParameter name="stroke-linejoin">bevel</CssParameter>
<CssParameter name="stroke-linecap">square</CssParameter>
</Stroke>
<PerpendicularOffset>0.0</PerpendicularOffset>
</LineSymbolizer>
</Rule>
<Rule>
<Name>300 - 600</Name>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>300</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>600</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<Mark>
<WellKnownName>backslash</WellKnownName>
<Fill>
<CssParameter name="fill">#a4fc3c</CssParameter>
<CssParameter name="fill-opacity">1.0</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#a4fc3c</CssParameter>
<CssParameter name="stroke-width">1.4</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
</Stroke>
</Mark>
<Opacity/>
<Size>12</Size>
<Rotation>0</Rotation>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">1.6428571428571428</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
<CssParameter name="stroke-linejoin">bevel</CssParameter>
<CssParameter name="stroke-linecap">square</CssParameter>
</Stroke>
<PerpendicularOffset>0.0</PerpendicularOffset>
</LineSymbolizer>
</Rule>
<Rule>
<Name>600 - 3500</Name>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>600</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>3500</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<Mark>
<WellKnownName>backslash</WellKnownName>
<Fill>
<CssParameter name="fill">#fb7e21</CssParameter>
<CssParameter name="fill-opacity">1.0</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#fb7e21</CssParameter>
<CssParameter name="stroke-width">1.4</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
</Stroke>
</Mark>
<Opacity/>
<Size>16</Size>
<Rotation>0</Rotation>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">1.6428571428571428</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
<CssParameter name="stroke-linejoin">bevel</CssParameter>
<CssParameter name="stroke-linecap">square</CssParameter>
</Stroke>
<PerpendicularOffset>0.0</PerpendicularOffset>
</LineSymbolizer>
</Rule>
<Rule>
<Name>3500 en groter</Name>
<ogc:Filter>
<ogc:And>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>3500</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>kadastraleGrootteWaarde</ogc:PropertyName>
<ogc:Literal>1000000</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
</ogc:And>
</ogc:Filter>
<PolygonSymbolizer>
<Fill>
<GraphicFill>
<Graphic>
<Mark>
<WellKnownName>backslash</WellKnownName>
<Fill>
<CssParameter name="fill">#ed52c9</CssParameter>
<CssParameter name="fill-opacity">1.0</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#ed40d3</CssParameter>
<CssParameter name="stroke-width">1.4</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
</Stroke>
</Mark>
<Opacity/>
<Size>20</Size>
<Rotation>0</Rotation>
</Graphic>
</GraphicFill>
</Fill>
</PolygonSymbolizer>
<LineSymbolizer>
<Stroke>
<CssParameter name="stroke">#000000</CssParameter>
<CssParameter name="stroke-width">1.6428571428571428</CssParameter>
<CssParameter name="stroke-opacity">1.0</CssParameter>
<CssParameter name="stroke-linejoin">bevel</CssParameter>
<CssParameter name="stroke-linecap">square</CssParameter>
</Stroke>
<PerpendicularOffset>0.0</PerpendicularOffset>
</LineSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>