Web Feature Service (WFS)
Dette beskriver, hvorledes WFS er implementeret i Kortforsyningen, herunder evt. afvigelser, begrænsninger og udvidelser. Der henvises til OGC WFS specifikationen for nærmere beskrivelse af terminologi og funktionalitet.
WFS er en OGC-standard for tjenester, der udstiller data i et specialiseret XML-format, GML. For en nærmere gennemgang af WFS henviser vi til OGC-standarden Web Feature Service Implementation Specification version 1.0.0 (OGC 02-058) og 1.1.0 (OGC 04-094).
- OpenGIS® Web Feature Service (WFS) Implementation Specification v 1.0 (pdf)
- OpenGIS® Web Feature Service (WFS) Implementation Specification v 1.1 (pdf)
- WFS-vejledning version 1.0.0 (Servicefælleskabet for Geodata) (pdf)
Adgang til WFS services
Alle brugere af Kortforsyningen har adgang til Kortforsyningens WFS services der udstiller frie data.
Understøttelse af versioner
WFS version | Understøttes af Kortforsyningen | Bemærkninger |
1.0.0 | Ja | GML2 |
1.1.0 | Ja | GML3 Simple Feature Profile |
Kortforsyningens WFS-tjenester er navngivet med postfix "_gml2" eller "_gmlsfp" svarende til hhv. GML2 og GML3 Simple Feature Profile. Kortforsyningens GML2-tjenester er beregnet til at blive brugt med WFS 1.0.0, og GML3-tjenesterne er beregnet til WFS 1.1.0.
Parameteren VERSION er obligatorisk i forespørgsler til Kortforsyningens WFS-tjenester.
Understøttelse af GetFeature
I GetFeature-forespørgsler kan man begrænse sin søgning på forskellige måder. I WFS-standarden er parametrene BBOX, FILTER og FEATUREID gensidigt udelukkede, så en GetFeature-forespørgsel skal kun indeholde én af de tre parametre. Så hvis man ønsker at kombinere en bounding box og et filter, skal man kun benytte FILTER og inkludere bounding boksen i filteret.
Når man benytter et filter i GetFeature-forespørgsler, skal man være opmærksom på at angive XML-namespaces korrekt og have rigtige den struktur på filteret.
I maj 2012 skiftede Kortforsyningen serverplatform for WFS-tjenesterne. I den forbindelse blev der udarbejdet et dokument med en række forskelle på den tidligere og den nuværende platform: Vejledning om udformning af forespørgelser med filter på ny WFS-platform.
Begrænsning
Af driftmæssige hensyn er der en begrænsning på 5000 features i svar fra Kortforsyningens WFS-tjenester. Nogle tjenester har dog en begrænsning på 10.000 features, det er nyere tjenester. Det er planen, at de øvrige WFS-tjenester skal opdateres, og i denne opdatering sættes featurebegrænsningen op til 10.000. På kortforsyningen.dk meldes ud, når alle WFS-tjenester er opdateret.
I de brugsscenarier, vi tiltænker WFS, vil en enkelt forespørgsel ofte hente et antal features, der ligger et godt stykke under grænsen på 5000 features.
Overskrides grænsen på de 5000 features vil man opleve en mangelfuld respons. F.eks kan det forespurgte område være reduceret i sin udstrækning eller der kan mangle temaer.
Forespørgsler, der ikke er afsluttet i løbet af 3 minutter i databasen, vil blive stoppet.
For at få et brugbart svar indenfor de 5000 features kan det anbefales at der enten hentes færre temaer ad gangen eller at områdets udstrækning reduceres.
Rendering af kortvisninger baseret på WFS-tjenester på webløsninger eller systemer med mange bruger, anses ikke for at være god arbejdsskik.
Dette vil i mange tilfælde belaste databaserne i så høj grad, at svartiderne forringes for alle brugere af Kortforsyningen.
Ønsker man kortvisning på webløsninger eller systemer med mange brugere henviser vi til WMTS og WMS tjenester.
Vi forbeholder os ret til at fjerne rettigheder til WFS-services for bruger, som anvender WFS-services uhensigtsmæssig.
Eksempler på WFS requests - inklusiv Filter Encoding(FE)
Maksimalt antal fortidsminder i et regulært område (topo_geo_gml2 GetCapabilities)
Få returneret maksimalt 3 fortidsminder i et rektangulært geografisk område. http://services.kortforsyningen.dk/service?servicename=topo_geo_g |
Fortidsminder i et rektangulært område (topo_geo_gml2 GetCapabilities) Få returneret alle fortidsminder i et rektangulært geografisk område. Bemærk, at nogle objekter ikke returneres, hvis det samlede antal objekter i svaret overstiger maksimumsgrænsen. http://services.kortforsyningen.dk/service?servicename=topo_geo |
Vindmøller i Danmark (topo_geo_gml2 GetCapabilities) Få returneret alle vindmøller i Danmark (når der står Danmark er det fordi, datasættet omfatter Danmark samt at der ikke er angivet nogen BBOX). Bemærk, at nogle objekter ikke returneres, hvis det samlede antal objekter i svaret overstiger maksimumsgrænsen. http://services.kortforsyningen.dk/service?servicename=topo_geo |
Alle Motorveje (topo_geo_gml2 GetCapabilities) Få returneret alle motorveje i Danmark (når der står Danmark er det fordi, datasættet omfatter Danmark samt at der ikke er angivet nogen BBOX). Bemærk, at nogle objekter ikke returneres, hvis det samlede antal objekter i svaret overstiger maksimumsgrænsen. http://services.kortforsyningen.dk/service?servicename=topo_geo |
Filter Encoding (FE
Matrikelregister for matrikelnummer (mat_gml2 GetCapabilities) Matrikelregister for matrikelnummer givet ved matrikelnummer og ejerlavskode. Inden borttagning af whitespace og URL-encoding ser "Filter"-parameteren sådan ud: <Filter xmlns="http://www.opengis.net/ogc"> Bemærk, at dette eksempel benytter en fælleslod, hvilket illustrerer hvordan disse optræder dubleret (i dette tilfælde 3 gange) i GML 2.1.2. Benyttes i stedet "&servicename=mat_gmlsfp" og "&version=1.1.0", undgås dette, men det kræver at klientsoftwaren understøtter GML 3.1 Simple Features Profile. http://services.kortforsyningen.dk/service?service=WFS&version=1. |
Hent SamletFastEjendom med givent SFE ejendomsnummer (mat_gmlsfp GetCapabilities) Objekttypen kms:SamletFastEjendom understøtter (pga. databasedesignet) ikke geografiske søgninger, dvs. brugen af f.eks. Bbox-parameteren resulterer i fejlmeddelelsen "ORA-13226: interface not supported without a spatial index". Derimod kan man hente SamletFastEjendom vha. et (ikke-geometrisk) filter, som f.eks. dette. http://services.kortforsyningen.dk/service?service=WFS&version=1. |
Spatiel filter - Jordstykke som indeholder et givent punkt (mat_gmlsfp GetCapabilities) Denne forespørgsel besvarer spørgsmålet: "Hvilket Jordstykke står jeg på, når min position har disse koordinater?" <Filter> http://services.kortforsyningen.dk/service?service=WFS&version=1. |
Matrikelregister for jordstykker som overlapper en vilkårlig polygon. (mat_gmlsfp GetCapabilities) Man kan bruge en vilkårlig polygon som filter. Her er brugt en polygon med både indre og ydre grænse: <Filter> Eksemplet benytter den tjeneste som understøtter WFS 1.1.0 og leverer GML 3.1 Simple Features Profile, men kan let modificeres hvis man hellere vil benytte WFS 1.0.0 og få leveret GML 2.1.2: Skift tjeneste til "&servicename=mat_gml2" og juster "version"-parameteren til "&version=1.0.0". Bemærk dog at dette har bieffekter, f.eks. Vil en fælleslod blive dubleret, sådan at den forekommer én gang en gang for hver ejendom den er med i. http://services.kortforsyningen.dk/service?service=WFS&version=1. |
Afgræns med rektangulært geografisk udsnit (BBOX) (topo_geo_gml2 GetCapabilities) Få alle 6+ meter brede veje i et afgrænset geografisk område. Bemærk URL encoding af filtret! <Filter xmlns="http://www.opengis.net/ogc"> http://services.kortforsyningen.dk/service?servicename=topo_geo |