You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »


Denne side er en guide til hvordan du som anvender kan bruge Datafordelerens entitetsbaserede WFS-tjenester.


Sideinformation



Indledning


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å:






Begreber

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)






Om entitetsbaserede WFS-tjenester

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.






Forskelle fra traditionelle/sammenstillede WFS-tjenester


Datafordeleren tilbyder to forskellige tilgange til WFS-tjenester:

  1. Sammenstillede WFS-tjenester: De eksisterende WFS-tjenester, som er migreret fra Snowflake GoPublisher til GeoServer-platformen. Disse tjenester er manuelt konfigurerede med specifikke lag, visninger og attributmappings optimeret til bestemte anvendelsesformål. Eksempler inkluderer DAGI Multigeometri, DHM Højdekurver, Fikspunkter og GeoDanmark Vektor tjenesterne. Disse tjenester leverer data gennem foruddefinerede lag med udvalgte felter og strukturer.
  2. Entitetsbaserede WFS-tjenester: Automatisk genererede tjenester hvor hver tabel i registrenes datamodel bliver direkte tilgængelig som et WFS-lag. Alle felter i databasetabellen bliver til attributter i WFS-laget med identiske navne og datatyper. For entiteter med bitemporal datamodel tilbydes både aktuelle data (_current) og komplet historisk sporbarhed (_hist). Denne tilgang kræver ingen manuel konfiguration og opdateres automatisk når datamodellerne ændres.

Begge typer kører på GeoServer og følger OGC WFS 2.0.0 standarden. Denne guide fokuserer på entitetsbaserede WFS-tjenester.






Udstilling af 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

https://wfs.datafordeler.dk/BBR/BBR_WFS/1.0.0/WFS

Danmarks Administrative Geografiske Inddeling

DAGI

1.0.0

https://wfs.datafordeler.dk/DAGI/DAGI_WFS/1.0.0/WFS

Danmarks Adresseregister

DAR

1.0.0

https://wfs.datafordeler.dk/DAR/DAR_WFS/1.0.0/WFS

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

https://wfs.datafordeler.dk/GEODKV/GEODKV_WFS/1.0.0/WFS

Matriklen

MAT

1.0.0

https://wfs.datafordeler.dk/MAT/MAT_WFS/1.0.0/WFS




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.






Standardparametre


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/
GetFeature

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:

  • Register: BBR
  • Service version: 1.0.0
  • OGC parametre
    • Service: WFS
    • WFS-protokol-version: 2.0.0
    • Metode: GetFeature
  • Entitet_bitemporalitet: Bygning_current

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-Metoder


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


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:

  • Understøttede outputformater (GML, GeoJSON)
  • Geografisk udstrækning for hvert lag
  • Maksimalt antal features der kan returneres (10.000)
  • Understøttede koordinatsystemer (EPSG:25832 som standard)

Læs mere om GeoServer GetCapabilities i GeoServer dokumentationen.






DescribeFeatureType


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:

  • Uden typeName: Henter skemaer for alle tilgængelige lag samtidig - nyttigt for at få komplet overblik over servicens datamodel
  • Med typeName: Henter kun skema for det specifikke lag - hurtigere og mere fokuseret når du ved præcis hvilket lag du skal arbejde med













  • No labels