Denne side er en guide til hvordan du som anvender kan bruge Datafordelerens entitetsbaserede WFS-tjenester.
Sideinformation
Datafordeleren tilbyder Web Feature Service (WFS)-tjenester til distribution af geografiske vektordata fra danske registre. WFS er en international OGC-standard, der muliggør struktureret udveksling af geodata mellem systemer og GIS-applikationer.
Datafordeleren udstiller entitetsbaserede WFS-tjenester, som er automatisk genererede baseret direkte på registrenes datamodeller. Tjenesterne følger OGC WFS 2.0.0 standarden. Denne guide fokuserer på hvordan disse tjenester anvendes i praksis.
Yderligere information om WFS og GeoServer kan findes på:
På denne side bruges begreberne nedenfor. Bemærk at begreberne også er yderligere forklaret i løbet af dokumentet med eksempler.
Begreb | Beskrivelse |
WFS | Web Feature Service – OGC-standard protokol for udveksling af geografiske vektordata |
OGC | Open Geospatial Consortium - international standardiseringsorganisation for geografiske data |
Feature | En geografisk enhed med geometri og attributter (f.eks. en bygning eller et vejstykke) |
Lag | Et lag i WFS der repræsenterer en samling features af samme type. Kaldes også "Layer" i engelsksprogede GIS-programmer |
FeatureType | Definition af strukturen for en type features (attributnavne, datatyper mv.) |
GML | Geography Markup Language - XML-baseret format til geografiske data |
GeoJSON | JSON-baseret format til geografiske data, populært i webapplikationer |
CQL | Common Query Language - tekstbaseret forespørgselssprog til filtrering (GeoServer-specifik udvidelse) |
Entitetsbaserede WFS-tjenester repræsenterer en automatiseret tilgang til at eksponere geodata, hvor hver tabel i et registers datamodel bliver direkte tilgængelig som et WFS-lag gennem en standardiseret proces. Dette koncept bygger på OGCs WFS 2.0.0 standard, men implementerer en én-til-én mapping mellem databasetabeller og WFS FeatureTypes.
Grundprincippet er at data eksponeres præcis som det ligger i registrenes databaser - uden forudgående filtrering, aggregering eller transformation. Hver entitet i datamodellen bliver automatisk et tilgængeligt lag i WFS-tjenesten. Dette betyder at hvis et register har en tabel kaldet "bygning", vil denne automatisk blive eksponeret som et lag kaldet "bygning_current" for aktuelle data og "bygning_hist" for historiske data.
Tilgangen inkluderer både entiteter med og uden geospatiale data. Dette betyder at selv administrative tabeller som Matriklens Jordstykke-entitet, der ikke indeholder geospatiale data, bliver tilgængelige gennem den samme standardiserede WFS-grænseflade med geometry-feltet sat til null.
Datafordeleren tilbyder to forskellige tilgange til WFS-tjenester:
Begge typer kører på GeoServer og følger OGC WFS 2.0.0 standarden. Denne guide fokuserer på entitetsbaserede WFS-tjenester.
WFS-tjenesterne udstilles gennem URL'er, der følger formen:
![]()
<register> er forkortelsen for det register anvenderen forsøger at hente data fra, <register>_WFS er servicenavnet der følger et fast mønster, <version> er versionen af tjenesten for det pågældende register (aktuelt 1.0.0 for alle initiale services) og <query-parametre> er de forskellige parametre hver tjeneste kan tage. Parametrene er yderligere beskrevet i afsnit 2.3, 2.4, 2.5 og 2.6 og versionering beskrives i afsnit 2.7.2.2.
De registre, der udstiller én eller flere entiteter gennem de entitetsbaserede WFS-tjenester, er vist i Tabel 3 nedenfor. Bemærk at et register kan vælge, hvilke entiteter de ønsker udstillet gennem tjenesterne, og at det derfor ikke nødvendigvis er alle entiteter i et register der kan tilgås gennem disse tjenester.
Register | Forkortelse | Service Version | Eksempel URL |
Bygnings- og Boligregistret | BBR | 1.0.0 | |
Danmarks Administrative Geografiske Inddeling | DAGI | 1.0.0 | |
Danmarks Adresseregister | DAR | 1.0.0 | |
DHM Højdekurver | DHMHoejdekurver | 1.0.0 | https://wfs.datafordeler.dk/DHMHoejdekurver/DHMHoejdekurver_WFS/1.0.0/WFS |
DHM | DHMOprindelse | 1.0.0 | https://wfs.datafordeler.dk/DHMOprindelse/DHMOprindelse_WFS/1.0.0/WFS |
Danmarks Fikspunktsregister | FIKSPUNKT | 1.0.0 | https://wfs.datafordeler.dk/FIKSPUNKT/FIKSPUNKT_WFS/1.0.0/WFS |
GeoDanmark Vektor | GEODKV | 1.0.0 | |
Matriklen | MAT | 1.0.0 |
Nogle registre har data opdelt i flere logiske enheder kaldet replikeringskanaler. For eksempel har DHM separate kanaler for Højdekurver og Oprindelse. Disse eksponeres som separate WFS-services med hver deres URL som vist i tabellen ovenfor.
Alle WFS-forespørgsler består af en base-URL og påkrævede query-parametre. Base-URL'en følger strukturen:
https://wfs.datafordeler.dk/<register>/<register>_WFS/<serviceVersion>/WFS |
Query-parametrene inkluderer tre standard OGC-parametre (service-type, protokolversion og ønsket funktion) samt autentifikation. Disse parametre skal altid inkluderes som query-parametre for at få et gyldigt svar fra tjenesten.
Følgende query-parametre skal altid angives ved WFS forespørgsler:
Parameter | Obligatorisk | Mulige inputparametre | Beskrivelse |
service | Ja | WFS | Servicetype |
OGC-version | Ja | 2.0.0 | Versionen af WFS-protokollen |
request | Ja | GetCapabilities/ DescribeFeatureType/ | Navnet på WFS-metode |
apikey/Oauth token | Ja | Din api-nøgle/token | Autentifikation. Se afsnit 3. |
Det er vigtigt at skelne mellem to forskellige versionsnumre i WFS-forespørgsler. Service-versionen i URL'en (f.eks. /1.0.0/) angiver version af servicen, mens WFS-protokol-versionen i parametrene (version=2.0.0) angiver versionen af WFS-standarden. WFS-protokol-versionen skal altid være 2.0.0, uanset hvilken serviceversion der tilgås.
I eksemplet nedenfor bruges:

Som vist i eksemplet ovenfor, indeholder URL'en både service-versionen (1.0.0) og WFS-protokol-versionen (2.0.0) på forskellige steder.
WFS-tjenesterne understøtter standard OGC-metoder der giver mulighed for at opdage tilgængelige data, forstå datastrukturen og hente de faktiske geografiske features. Hver metode har et specifikt formål i arbejdet med geografiske data.
Metode | Formål | Typisk anvendelse | Returnerer |
GetCapabilities | Henter tilgængelige lag og service metadata | Første kald til en WFS-service | XML metadata |
DescribeFeatureType | Henter datastrukturen for specifikke lag | Kaldes før opbygning af queries | XSD-skema |
GetFeature | Henter faktiske geografiske data | Dataudtræk og analyse | GML/GeoJSON |
For yderligere information om WFS-metoder, GeoServer WFS Reference: GeoServer's officielle dokumentation.
GetCapabilities-metoder bruges til at hente oplysning om de tilgængelige lag der er i en WFS-tjeneste samt hvilke metoder og formater der understøttes for disse lag. Dette er typisk det første kald man laver til en ny WFS-tjeneste for at forstå hvad der er tilgængeligt. GetCapabilities kan kaldes med ingen yderligere parametre end de standardparametre beskrevet i Tabel 4.
Eksempel:
https://wfs.datafordeler.dk/BBR/BBR_WFS/1.0.0/WFS?service=WFS&version=2.0.0&request=GetCapabilities&apikey={YOUR_API_KEY} |
Kald til GetCapabilities returnerer et længere XML-dokument der beskriver de pågældende tjenester. Kaldet returner blandt andet metadata om:
Læs mere om GeoServer GetCapabilities i GeoServer dokumentationen.
DescribeFeatureType-metode returnerer den detaljerede struktur i form af et skema for et lag. Dette bruges til at forstå, hvilke attributter der er tilgængelige, deres datatyper og eventuelle begrænsninger. GIS-software bruger ofte denne metode automatisk for at konfigurere attributtabeller korrekt. DescribeFeatureType bruger de samme standardparametre som beskrevet i Tabel 4 (service, version, request, apikey) plus følgende yderligere parameter beskrevet i Tabel 6 for at specificere hvilken entitet du vil se strukturen for.
Parameter | Standardværdi | Beskrivelse |
typeName | Alle lag | Den featureType der ønskes beskrevet |
For entitetsbaserede tjenester følger lagnavnene mønsteret {entitet}_{bitemporalitet} hvor entitet er bygning, tekniskanlaeg, adresse osv., og bitemporalitet er enten current (aktuelle data) eller hist (historiske data). Eksempler: bygning_current, tekniskanlaeg_hist, adresse_current.
Brug af typeName-parameteren: