nye muligheder med web map service styled layer descriptor og filter encoding n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Nye muligheder med Web Map Service – Styled Layer Descriptor og Filter Encoding PowerPoint Presentation
Download Presentation
Nye muligheder med Web Map Service – Styled Layer Descriptor og Filter Encoding

Loading in 2 Seconds...

play fullscreen
1 / 38

Nye muligheder med Web Map Service – Styled Layer Descriptor og Filter Encoding - PowerPoint PPT Presentation


  • 126 Views
  • Uploaded on

Nye muligheder med Web Map Service – Styled Layer Descriptor og Filter Encoding. Hands-on øvelser ved Kortforsyningen Partnerseminar 2005. Februar 2005. Yes. Filter Encoding. No. Named. User. Styles. Udviklingen af WMS.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Nye muligheder med Web Map Service – Styled Layer Descriptor og Filter Encoding' - camden-jackson


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
nye muligheder med web map service styled layer descriptor og filter encoding

Nye muligheder med Web Map Service – Styled Layer Descriptor og Filter Encoding

Hands-on øvelser ved Kortforsyningen Partnerseminar 2005

Februar 2005

udviklingen af wms

Yes

Filter Encoding

No

Named

User

Styles

Udviklingen af WMS

Mulighed for at definere udseende for ét eller flere objekter fx ”Næstved kommune skal farves rød – de andre grå”

WMS+SLD+FE

Mulighed for at definere udseende for alle objekter i et tema fx ”alle motorveje skal være orange”

WMS+SLD

WMS

Svarende til Kortforsyningen i dag. KMS har defineret udseendet af temaer (ét style pr. lag)

eksempel
Eksempel

WMS

WMS+SLD

WMS+SLD+FE

layers og styles i wms
Layers og styles i WMS
  • Med parameteren LAYERS vælger brugeren de temaer, kortet skal indeholde
  • Værdien af LAYERS parameteren er en kommasepareret liste, hvor første tema i listen vises nederst i kortet, andet tema vises ovenpå første osv.
  • Styles angiver hvilket af de prædefinerede udseender hvert lag skal have. Prædefinerede styles betyder, at udseendet af temaerne er defineret af udbyderen af tjenesten fx Kort & Matrikelstyrelsen
  • Værdien af STYLES parameteren er en kommasepareret liste, hvor første udseende er associeret med første tema, andet udseende med andet tema osv.

http://www.domain.dk/wms/mywms?LAYERS=hav,land,motorveje&STYLES=hvid,graa,orange&…

web map service uden server definerede styles
Web Map Service uden server definerede styles
  • I mange WMS tjenester er der kun ét udseende til hvert tema, eller der er ét default udseende til hvert tema – dette gælder fx Kortforsyningen
  • I disse tilfælde indeholder STYLES parameteren også en kommasepareret liste, men med tomme værdier mellem kommaerne
  • Afhængig af WMS serveren kan den kommaseparerede liste erstattes af en tom streng
  • I praksis har parameteren STYLES dermed ingen betydning, men den er stadig påkrævet for at være en gyldig WMS forespørgsel

http://www.domain.dk/wms/mywms?LAYERS=hav,land,motorveje&STYLES=,,&…

http://www.domain.dk/wms/mywms?LAYERS=hav,land,motorveje&STYLES=&…

web map service med server definerede styles
Web Map Service med server definerede styles
  • Nogle WMS tjenester tilbyder brugeren at vælge mellem en række udseender for hvert tema fx kan motorveje have to udseender med navnene “sort” og “orange”
  • Ovenstående kaldes NamedStyles i SLD sprog
  • I tilfælde af ovenstående vil GetCapabilities responset indeholde information om dette
  • Kortforsyningen understøtter pt. Ikke NamedStyles, men har lavet en pseudo implementering ved fx at oprette flere temaer baseret på samme data, men med forskelligt udseende fx Ejendomsskel og Ejendomsskel_gul i WMS tjenesten tomat_01

http://www.domain.dk/wms/mywms?LAYERS=motorveje&STYLES=sort&…

http://www.domain.dk/wms/mywms?LAYERS=motorveje&STYLES=orange&…

getcapabilities respons eksempel med flere styles
GetCapabilities respons – eksempel med flere Styles

<Layer queryable="1">

<Name>motorveje</Name>

<Title>motorveje</Title>

<LatLonBoundingBox minx="9.804250354044811" miny="56.12130342187802" maxx="9.967332432966554" maxy="56.2122932433927"/>

<BoundingBox SRS="EPSG:25832" minx="550000.0" miny="6220000.0" maxx="560000.0" maxy="6230000.0"/>

<Style>

<Name>sort</Name>

<Title>sort</Title>

</Style>

<Style>

<Name>orange</Name>

<Title>orange</Title>

</Style>

</Layer>

styled layer descriptor
Styled Layer Descriptor
  • OGC specifikation fra 2002
  • Nuværende version er 1.0.0
  • Kan opfattes som en udvidelse af Web Map Service specifikationen (WMS)
  • Har bl.a. til formål at sætte brugeren i stand til at definere udseendet af indholdet i et kort fra en WMS – dette kaldes UserStyle
  • I tilfælde af at en WMS server tillader brugeren at definere udseendet vil GetCapabilities responset indeholde information om dette

<UserDefinedSymbolization

SupportSLD=”0" UserLayer="0" UserStyle=”1" RemoteWFS="0"/>

sld udvider funktionaliteten i wms
SLD udvider funktionaliteten i WMS
  • SLD understøttede WMS’ere accepterer evt. også følgende forespørgsler:
    • GetLegendGraphic
    • DescribeLayer
    • GetStyles
    • PutStyles
  • Hvorvidt en WMS understøtter ovenstående fremgår af GetCapabilities responset, hvor metoderne vil være at finde i gruppe med <GetFeatureInfo> og <GetMap> elementerne
getcapabilities respons eksempel p describelayer
GetCapabilities respons – eksempel på DescribeLayer

<DescribeLayer>

<Format>application/vnd.ogc.wms_xml</Format>

<DCPType>

<HTTP>

<Get>

<OnlineResource xlink:href="http://www.domain.dk/wms/mywms?" xlink:type="simple" xmlns:xlink="http://www.w3.org/1999/xlink"/>

</Get>

</HTTP>

</DCPType>

</DescribeLayer>

sld describelayer
SLD – DescribeLayer
  • Bruges til at få de detaljerede informationer om et eller flere temaer i WMS’en herunder deres attributter
  • Benyttes primært i forbindelse med FilterEncoding, hvor man evt. ønsker at arbejde med en delmængde af objekter i et tema

http://www.domain.dk/wms/mywms?REQUEST=DescribeLayer&LAYERS=Matrikelflader,Kredse&…

<?xml version="1.0" encoding="utf-8" ?>

<WMS_DescribeLayerResponse version="1.1.1">

<LayerDescription wfs="http://www.domain.dk/wfs/mywfs" name="Matrikelflader">

<Query typename="Matrikelflader"></Query>

</LayerDescription>

<LayerDescription wfs="http://www.domain.dk/wfs/mywfs" name=”Kredse">

<Query typename=”Kredse"></Query>

</LayerDescription>

</WMS_DescribeLayerResponse>

sld getlegendgraphic
SLD – GetLegendGraphic
  • Bruges til at få et raster billede indeholdende udseendet for et givent tema
  • Benyttes primært til at kunne sammensætte signaturforklaring

http://wms.mywms.dk/wms?REQUEST=GetLegendGraphic&LAYER=Matrikelflader&…

sld putstyles og getstyles
SLD – PutStyles og GetStyles
  • GetStyles
    • En forespørgsel der returnerer de UserStyles, der måtte være til rådighed for et eller flere givne temaer
  • PutStyles
    • Gør det muligt at uploade sit eget brugerdefinerede style, som herefter indgår som NamedStyle
  • Har lav prioritet i Kortforsyningen – alternativt gives adgang til FTP, hvori SLD dokumenter kan gemmes
hvordan definerer man selv udseendet
Hvordan definerer man selv udseendet?
  • Man definerer det ønskede udseende ved hjælp af XML jf. SLD XML skemaet
  • Som en tilføjelse til WMS forespørgslen skal man gøre opmærksom på ovenstående SLD dokument, så WMS serveren kan bruge dette i forbindelse med genereringen af billedet
  • Der findes flere metoder at gøre WMS serveren opmærksom på dette:
    • Ved at referere til et SLD dokument i WMS forespørgslen med parameteren SLD (HTTP GET)
    • Ved at indlejre et SLD dokument i WMS forespørgslen med parameteren SLD_BODY (HTTP GET)
    • Ved at kombinere WMS forespørgslen (XML) og SLD dokumentet (XML), som efterfølgende sendes til WMS serveren (HTTP POST)
get sld eksempel
GET SLD – eksempel

http://www.domain.dk/wms/mywms?LAYER=Skov&SLD=http://www.domain.dk/sld/mysld.xml&…

<?xml version="1.0" encoding="UTF-8"?>

<StyledLayerDescriptor version="1.0.0">

<NamedLayer>

<Name>Skov</Name>

<UserStyle>

<Title>Skov</Title>

<FeatureTypeStyle>

<Rule>

<PolygonSymbolizer>

<Geometry>

<PropertyName>skov_flade</PropertyName>

</Geometry>

<Fill>

<CssParameter name="fill">#00cc33</CssParameter>

</Fill>

<Stroke>

<CssParameter name="stroke">#ff3366</CssParameter>

<CssParameter name="stroke-width">2</CssParameter>

</Stroke>

</PolygonSymbolizer>

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

get sld body eksempel
GET SLD_BODY – eksempel

http://www.domain.dk/wms/mywms?LAYER=Skov&SLD_BODY=<?xml version="1.0" encoding="UTF-8"?><StyledLayerDescriptor version="1.0.0"><NamedLayer><Name>Skov</Name><UserStyle><Title>Skov</Title> <FeatureTypeStyle><Rule><PolygonSymbolizer><Geometry><PropertyName>skov_flade</PropertyName></Geometry><Fill><CssParameter name="fill">#00cc33</CssParameter></Fill><Stroke><CssParameter name="stroke">#ff3366</CssParameter><CssParameter name="stroke-width">2</CssParameter></Stroke></PolygonSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer></StyledLayerDescriptor>&…

Værdien af SLD og SLD_BODY bør være URL encoded – ovenstående er blot for læselighedens skyld!

post wms sld eksempel
POST WMS+SLD – eksempel

<?xml version="1.0" encoding="UTF-8"?>

<ogc:GetMap service="WMS" version="1.2">

<StyledLayerDescriptor version="1.0.0">

<NamedLayer>

<Name>Skov</Name>

<UserStyle>

<Title>Skov</Title>

<FeatureTypeStyle>

<Rule>

….

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

<BoundingBox srsName=http://www.opengis.net/gml/srs/epsg.xml#25832>

<gml:coord>

<gml:X>550000</gml:X>

<gml:Y>6220000</gml:X>

</gml:coord>

<gml:coord>

<gml:X>551000</gml:X>

<gml:Y>6221000</gml:X>

</gml:coord>

</BoundingBox>

<Output>

<Format>image/png</Format>

<Transparent>false</Transparent>

<Size>

<Width>500</Width>

<Height>500</Height>

</Size>

</Output>

<Exceptions>application/vnd.ogc.se_xml</Exception>

</ogc:GetMap>

fordele og ulemper ved de tre metoder

POST SLD+WMS

GET SLD_BODY

GET SLD

SLD og WMS kombineret i XML, der sendes til WMS server

SLD dokument indlejret i URL’en med parameteren SLD_BODY

SLD dokument refereres til med parameteren SLD

Ekstern reference unødvendig

Begrænset Internet transfer

Dynamisk

Ekstern reference unødvendig

Begrænset Internet transfer

Dynamisk

Mulighed for at benytte SLD som en slags style bibliotek

Muligt at redigere med XML editor

GET metode har en begrænsning i antal karakterer, så SLD skal være simpel

Internet overførsel af SLD dokument fra SLD vært til WMS

Forholdsvist statisk

Det er kun WMS versioner nyere end 1.1.1, der understøtter HTTP POST. Det er dermed endnu ikke så udbredt

Fordele og ulemper ved de tre metoder

Metode

Beskrivelse

Fordele

Ulemper

sld dokumentstruktur generelt 1 2
SLD dokumentstruktur – generelt 1/2

StyledLayerDescriptor

PointSymbolizer (1-1)

or

LineSymbolizer (1-1)

UserLayer (0-)

or

or

PolygonSymbolizer (1-1)

NamedLayer (0-)

or

TextSymbolizer (1-1)

NamedStyle (0-)

or

or

RasterSymbolizer (1-1)

UserStyle (0-)

FeatureTypeStyle (1-)

Rule (1-)

Adskillige XML elementer og attributter kan være udeladt i ovenstående

sld dokumentstruktur generelt 2 2
SLD dokumentstruktur – generelt 2/2

<?xml version="1.0" encoding="UTF-8"?>

<StyledLayerDescriptor version="1.0.0">

<NamedLayer>

<Name>Skov</Name>

<UserStyle>

<Title>Skov</Title>

<FeatureTypeStyle>

<Rule>

<PolygonSymbolizer>

<Fill>

<CssParameter name="fill">#00cc33</CssParameter>

</Fill>

<Stroke>

<CssParameter name="stroke">#ff3366</CssParameter>

<CssParameter name="stroke-width">2</CssParameter>

</Stroke>

</PolygonSymbolizer>

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

sld dokumentstruktur symbolizers 1 2

Fill

PolygonSymbolizer

GraphicFill (0-1)

Geometry (0-1)

CssParameter (0-)

Fill (0-1)

Stroke (0-1)

Stroke

CssParameter (0-)

GraphicFill (0-1)

or

GraphicStroke (0-1)

SLD dokumentstruktur – Symbolizers 1/2
sld dokumentstruktur symbolizers 2 2
SLD dokumentstruktur – Symbolizers 2/2

<?xml version="1.0" encoding="UTF-8"?>

<StyledLayerDescriptor version="1.0.0">

<NamedLayer>

<Name>Skov</Name>

<UserStyle>

<Title>Skov</Title>

<FeatureTypeStyle>

<Rule>

<PolygonSymbolizer>

<Fill>

<CssParameter name="fill">#00cc33</CssParameter>

</Fill>

<Stroke>

<CssParameter name="stroke">#ff3366</CssParameter>

<CssParameter name="stroke-width">2</CssParameter>

</Stroke>

</PolygonSymbolizer>

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

hands on velser styles layer descriptor
Hands-on øvelser – Styles Layer Descriptor
  • Line Symbolizer
  • Polygon Symbolizer
  • Point Symbolizer
  • Text Symbolizer – Polygon
  • Text Symbolizer – Point
styled layer descriptor line symbolizer
Styled Layer Descriptor – Line Symbolizer

<?xml version="1.0" encoding="UTF-8"?>

<StyledLayerDescriptor version="1.0.0" xmlns:sld="http://www.opengis.net/sld">

<NamedLayer>

<Name>Motorvej</Name>

<UserStyle>

<FeatureTypeStyle>

<Rule>

<LineSymbolizer>

<Stroke>

<CssParameter name="stroke">#ff3366</CssParameter>

<CssParameter name="stroke-width">5.0</CssParameter>

<CssParameter name="stroke-dasharray">10 5</CssParameter>

</Stroke>

</LineSymbolizer>

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

SLD: sld_line.xml

SLD spec. side 33-38

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:\mapserver\tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Bykerne,Industri,Lav_bebyggelse,Hoej_bebyggelse,Raastof,Skov,Gartneri,Hede,Sand,Vaadomraade,Sti,Anden_vej_fyld,Vej_3-6_fyld,Motortrafikvej_fyld,Motorvej_fyld,Anden_vej,Vej_3-6,Motortrafikvej,Motorvej,Jernbane,Vandloeb,Groeft,Ejendomsskel,Fredskov_linie,Fredskov&styles=&bbox=565000,6230200,570000,6235200&sld=http://kmswww2.kms.dk/mapserver/sld/sld_line.xml

styled layer descriptor polygon symbolizer
Styled Layer Descriptor – Polygon Symbolizer

<?xml version="1.0" encoding="UTF-8"?>

<StyledLayerDescriptor version="1.0.0" xmlns:sld="http://www.opengis.net/sld">

<NamedLayer>

<Name>Skov</Name>

<UserStyle>

<FeatureTypeStyle>

<Rule>

<PolygonSymbolizer>

<Fill>

<CssParameter name="fill">#00cc33</CssParameter>

</Fill>

<Stroke>

<CssParameter name="stroke">#ff3366</CssParameter>

<CssParameter name="stroke-width">2</CssParameter>

</Stroke>

</PolygonSymbolizer>

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

SLD: sld_polygon.xml

SLD spec. side 38-40

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:\mapserver\tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Bykerne,Industri,Lav_bebyggelse,Hoej_bebyggelse,Raastof,Gartneri,Hede,Sand,Vaadomraade,Sti,Anden_vej_fyld,Vej_3-6_fyld,Motortrafikvej_fyld,Motorvej_fyld,Anden_vej,Vej_3-6,Motortrafikvej,Motorvej,Skov,Jernbane,Vandloeb,Groeft,Ejendomsskel,Fredskov_linie,Fredskov&styles=&bbox=565000,6230200,570000,6235200&sld=http://kmswww2.kms.dk/mapserver/sld/sld_polygon.xml

styled layer descriptor point symbolizer
Styled Layer Descriptor – Point Symbolizer

<?xml version="1.0" encoding="UTF-8"?>

<StyledLayerDescriptor version="1.0.0" xmlns:sld="http://www.opengis.net/sld">

<NamedLayer>

<Name>Fredskov</Name>

<UserStyle>

<Title>Fredskov</Title>

<FeatureTypeStyle>

<Rule>

<PointSymbolizer>

<Graphic>

<Mark>

<WellKnownName>star</WellKnownName>

<Fill>

<CssParameter name="fill">#33ccff</CssParameter>

</Fill>

</Mark>

<Size>6</Size>

</Graphic>

</PointSymbolizer>

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

SLD: sld_point.xml

SLD spec. side 40-44

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:\mapserver\tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Bykerne,Industri,Lav_bebyggelse,Hoej_bebyggelse,Raastof,Gartneri,Hede,Sand,Vaadomraade,Sti,Anden_vej_fyld,Vej_3-6_fyld,Motortrafikvej_fyld,Motorvej_fyld,Anden_vej,Vej_3-6,Motortrafikvej,Motorvej,Jernbane,Vandloeb,Groeft,Ejendomsskel,Fredskov_linie,Fredskov&styles=&bbox=565000,6230200,570000,6235200&sld=http://kmswww2.kms.dk/mapserver/sld/sld_point.xml

styles layser descriptor text symbolizer polygon
Styles Layser Descriptor – Text Symbolizer (Polygon)

</PolygonSymbolizer>

<TextSymbolizer>

<Label>Navn</Label>

<Font>

<CssParameter name="font-family">Arial</CssParameter>

<CssParameter name="font-size">12</CssParameter

</Font>

<Fill>

<CssParameter name="fill">#006600</CssParameter>

</Fill>

</TextSymbolizer>

</Rule>

</FeatureTypeStyle>

</UserStyle>

</NamedLayer>

</StyledLayerDescriptor>

SLD: sld_polygontext.xml

SLD spec. side 45-49

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:\mapserver\tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Komgrens&styles=&bbox=565000,6230200,570000,6235200&sld=http://kmswww2.kms.dk/mapserver/sld/sld_polygontext.xml

styles layser descriptor text symbolizer point
Styles Layser Descriptor – Text Symbolizer (Point)

<TextSymbolizer>

<Label>FIX_KORT</Label>

<LabelPlacement>

<PointPlacement>

<AnchorPoint>

<AnchorPointX>1</AnchorPointX>

<AnchorPointY>1</AnchorPointY>

</AnchorPoint>

<Displacement>

<DisplacementX>0</DisplacementX>

<DisplacementY>0</DisplacementY>

</Displacement>

<Rotation>0</Rotation>

</PointPlacement>

</LabelPlacement>

<Font>

<CssParameter name="font-family">Arial</CssParameter>

<CssParameter name="font-size">6</CssParameter>

</Font>

<Fill>

<CssParameter name="fill">#3300cc</CssParameter>

</Fill>

</TextSymbolizer>

SLD: sld_pointtext.xml

SLD spec. side 45-49

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:\mapserver\tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Bykerne,Industri,Lav_bebyggelse,Hoej_bebyggelse,Raastof,Skov,Gartneri,Hede,Sand,Vaadomraade,Sti,Anden_vej_fyld,Vej_3-6_fyld,Motortrafikvej_fyld,Motorvej_fyld,Anden_vej,Vej_3-6,Motortrafikvej,Motorvej,Jernbane,Vandloeb,Groeft,Ejendomsskel,Fredskov_linie,Fredskov,Fixpunkt&styles=&bbox=565000,6230200,570000,6235200&sld=http://kmswww2.kms.dk/mapserver/sld/sld_pointtext.xml

filter encoding
Filter Encoding
  • OGC specifikation fra 2001
  • Oprindeligt en del af WFS specifikation, men nu udskilt i sin egen
  • Nuværende version er 1.0.0
  • Fungerer sammen med Styled Layer Descriptor (SLD) og Web Feature Service (WFS) m.fl.
  • Sætter brugeren i stand til at arbejde med en delmængde af geodata (udover BoundingBox), dvs. der kan differentieres på objektniveau og ikke blot temaniveau
mange filtreringsmuligheder
Mange filtreringsmuligheder
  • Rumlige filtre
    • Bruges til at filtrere objekter baseret på deres rumlige placering og udstrækning
    • Equals, Disjoint, Touches, Within, Overlaps, Crosses, Instersects…
  • Sammenlignings filtre
    • Benyttes til at filtrere objekter baseret på deres attributværdier
    • PropertyIsEqualTo, PropertyIsGreaterThan, PropertyIsLessThan…
  • Logiske filtre
    • Gør det muligt at kombinere flere filtre
    • And, Or, Not
filter encoding sld dokumentstruktur 1 2

Rule

Filter (0-1)

ElseFilter (0-1)

Filter Encoding – SLD dokumentstruktur 1/2
  • Filter i SLD indgår altid som child til elementet <Rule> og dermed på linje med Symbolizerne
  • Elementets navn er <Filter> eller <ElseFilter>
  • Indholdet i <Filter> er relateret til Filter Encoding XML skemaet – namespace præfix er derfor ofte nødvendig

Adskillige XML elementer og attributter kan være udeladt i ovenstående

filter encoding sld dokumentstruktur 2 2
Filter Encoding – SLD dokumentstruktur 2/2

<Rule>

<Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>MAS_MATRNR</ogc:PropertyName>

<ogc:Literal>1r</ogc:Literal>

</ogc:PropertyIsEqualTo>

</Filter>

<PolygonSymbolizer>

<Stroke>

<CssParameter name="stroke">#000000</CssParameter>

<CssParameter name="stroke-width">1</CssParameter>

</Stroke>

<Fill>

<CssParameter name="fill">#FFFF00</CssParameter>

<CssParameter name="fill-opacity">1</CssParameter>

</Fill>

</PolygonSymbolizer>

<TextSymbolizer>

<Label>MAS_MATRNR</Label>

<Font>

<CssParameter name="font-family">Arial</CssParameter>

<CssParameter name="font-size">10</CssParameter>

</Font>

<Fill>

<CssParameter name="fill">#000000</CssParameter>

</Fill>

</TextSymbolizer>

</Rule>

hands on velser styles layer descriptor filter encoding
Hands-on øvelser: Styles Layer Descriptor & Filter Encoding
  • PropertyIsEqualTo – Highlight af objekt baseret på attributværdi
  • PropertyIsGreaterThan – Interval rendering baseret på attributværdi
  • Intersect – Highlight af objekt baseret på rumlig filtrering
  • Dwithin - Highlight af objekter baseret på afstand til position (buffer)
slide34

Styled Layer Desctiptor & Filter – Highlight

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

<StyledLayerDescriptor version="1.0.0" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc">

<NamedLayer>

<Name>Bygning</Name>

<UserStyle>

<Name>Highlight</Name>

<FeatureTypeStyle>

<FeatureTypeName>Bygning</FeatureTypeName>

<Rule>

<PolygonSymbolizer>

<Stroke>

<CssParameter name="stroke">#000000</CssParameter>

<CssParameter name="stroke-width">1</CssParameter>

</Stroke>

<Fill>

<CssParameter name="fill">#CCCCCC</CssParameter>

<CssParameter name="fill-opacity">1</CssParameter>

</Fill>

</PolygonSymbolizer>

</Rule>

<Rule>

<Filter>

<ogc:PropertyIsEqualTo>

<ogc:PropertyName>Id_nr</ogc:PropertyName>

<ogc:Literal>5961208</ogc:Literal>

</ogc:PropertyIsEqualTo>

</Filter>…

SLD: fe_highlightbygning.xml

Filter Encoding spec. side 11-13, 20

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:\mapserver\tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Bygning,Ejendomsskel,Adresser&styles=&bbox=575100,6224140,575300,6224340&sld=http://kmswww2.kms.dk/mapserver/sld/fe_highlightbygning.xml

styled layer desctiptor filter intervalrendering
Styled Layer Desctiptor & Filter - Intervalrendering

<Rule>

<ogc:Filter>

<ogc:PropertyIsGreaterThan>

<ogc:PropertyName>REG_AREAL</ogc:PropertyName>

<ogc:Literal>500</ogc:Literal>

</ogc:PropertyIsGreaterThan>

</ogc:Filter>

<PolygonSymbolizer>

<Stroke>

<CssParameter name="stroke">#000000</CssParameter>

<CssParameter name="stroke-width">1</CssParameter>

</Stroke>

<Fill>

<CssParameter name="fill">#FFFF99</CssParameter>

<CssParameter name="fill-opacity">1</CssParameter>

</Fill>

</PolygonSymbolizer>

</Rule>

<Rule>

<ogc:Filter>

<ogc:PropertyIsGreaterThan>

<ogc:PropertyName>REG_AREAL</ogc:PropertyName>

<ogc:Literal>1000</ogc:Literal>

</ogc:PropertyIsGreaterThan>

</ogc:Filter>

SLD: fe_interval.xml

Filter Encoding spec. side 11-13, 20

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:\mapserver\tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Bykerne,Industri,Lav_bebyggelse,Hoej_bebyggelse,Raastof,Skov,Gartneri,Hede,Sand,Vaadomraade,Sti,Anden_vej_fyld,Vej_3-6_fyld,Motortrafikvej_fyld,Motorvej_fyld,Anden_vej,Vej_3-6,Motortrafikvej,Motorvej,Jernbane,Vandloeb,Groeft,Ejendomsskel,Fredskov_linie,Fredskov&styles=&bbox=565000,6230200,570000,6235200&sld=http://kmswww2.kms.dk/mapserver/sld/fe_interval.xml

slide36

Styled Layer Desctiptor & Filter – Highlight

<Rule>

<PolygonSymbolizer>

<Stroke>

<CssParameter name="stroke">#000000</CssParameter>

<CssParameter name="stroke-width">1</CssParameter>

</Stroke>

<Fill>

<CssParameter name="fill">#CCCCCC</CssParameter>

<CssParameter name="fill-opacity">1</CssParameter>

</Fill>

</PolygonSymbolizer>

</Rule>

<Rule>

<Filter>

<Intersect>

<gml:Polygon srsName="EPSG:25832">

<gml:outerBoundaryIs>

<gml:LinearRing>

<gml:coordinates>575183,6224200 575186,6224203 575186,6224200 575183,6224200</gml:coordinates>

</gml:LinearRing>

</gml:outerBoundaryIs>

</gml:Polygon>

</Intersect>

</Filter>

SLD: fe_intersectbygning.xml

Filter Encoding spec. side 9-11

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:\mapserver\tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Bygning,Ejendomsskel,Adresser&styles=&bbox=575100,6224140,575300,6224340&sld=http://kmswww2.kms.dk/mapserver/sld/fe_intersectbygning.xml

slide37

Styled Layer Desctiptor & Filter – Dwithin (buffer)

<Filter>

<ogc:DWithin>

<gml:Point srsName="EPSG:25832">

<gml:coordinates>575183,6224200</gml:coordinates>

</gml:Point>

<ogc:Distance units="meters">80</ogc:Distance>

</ogc:DWithin>

</Filter>

<PolygonSymbolizer>

<Stroke>

<CssParameter name="stroke">#000000</CssParameter>

<CssParameter name="stroke-width">1</CssParameter>

</Stroke>

<Fill>

<CssParameter name="fill">#FFFF00</CssParameter>

<CssParameter name="fill-opacity">1</CssParameter>

</Fill>

</PolygonSymbolizer>

SLD: fe_dwithinbygning.xml

Filter Encoding spec. side 9-11

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:/mapserver/tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Ejendomsskel,Bygning&styles=&bbox=574700,6223740,575500,6224540&sld=http://kmswww2.kms.dk/mapserver/sld/fe_dwithinbygning.xml

slide38

Styled Layer Desctiptor & Filter – And (filter kombination)

<Rule>

<Filter>

<ogc:And>

<ogc:PropertyIsGreaterThan> <!– kun matrikler > 5000 m2 -->

<ogc:PropertyName>REG_AREAL</ogc:PropertyName>

<ogc:Literal>5000</ogc:Literal>

</ogc:PropertyIsGreaterThan>

<ogc:PropertyIsLessThanOrEqualTo> <!– må ikke indeholde vej -->

<ogc:PropertyName>VEJ_AREAL</ogc:PropertyName>

<ogc:Literal>0</ogc:Literal>

</ogc:PropertyIsLessThanOrEqualTo>

</ogc:And>

</Filter> <PolygonSymbolizer>

<Stroke>

<CssParameter name="stroke">#000000</CssParameter>

<CssParameter name="stroke-width">1</CssParameter>

</Stroke>

<Fill>

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

<CssParameter name="fill-opacity">1</CssParameter>

</Fill>

SLD: fe_and.xml

Filter Encoding spec. side 13-14, 23

http://kmswww2.kms.dk/mapserver/bin/mapserv.exe?map=c:/mapserver/tomat.map&service=WMS&request=GetMap&version=1.1.1&srs=EPSG:25832&width=600&height=600&format=image/png&exceptions=application/vnd.ogc.se_inimage&bgcolor=0xFFFFFF&transparent=false&layers=Hav,Amtgrens,Ejendomsskel&styles=&bbox=574500,6223540,575900,6224940&sld=http://kmswww2.kms.dk/mapserver/sld/fe_and.xml