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

Compare with Current View Page History

Version 1 Next »

Anvendelse og opsætning af OGC webservices (WMS, WMTS, WFS og WCS) på Dataforsyningen.

Denne side beskriver, hvorledes WMS, WMTS, WFS og WCS er implementeret i Dataforsyningen, herunder evt. afvigelser, begrænsninger og udvidelser. Der henvises til OGC standarder for nærmere beskrivelse af terminologi.

For de viderestillede Datafordeler webservices (*_DAF) kan der læses yderligere om parametre og kald af datafordeler-tjenester i dette link.

WMS

Formater og projektioner

For GetMap understøttes altid formaterne PNG (typisk 24 bit) og JPEG, og der tillades som udgangspunkt forspørgelser på op til  10.000 px i WIDTH og  10.000 px i HEIGHT.

For GetFeatureInfo understøttes generelt formaterne Text og GML. 

Generelt er UTM/ETRS89 den understøttede projektion/datum (både zone 32 og 33). 

Stort set al geodata i Dataforsyningen er lagret i UTM zone 32 ETRS89 svarende til EPSG:25832. Forespørgsler i andre projektioner/koordinatsystemer end denne, medfører en transformation og evt. resampling af billedet inden det returneres til brugeren. Dette vil forlænge svartiden, så er korte svartider højt prioriteret, bør man forespørge med SRS=EPSG:25832. (SRS ved version 1.1.1 og CRS ved WMS version 1.3.0)

Det vil altid fremgå af GetCapabilities responset for den enkelte WMS, hvilke formater og koordinatsystemer der understøttes.

En gyldig URL vil f.eks. se således ud:

https://api.dataforsyningen.dk/natur_friluftskort?SERVICE=WMS&VERSION=1.1.1 &REQUEST=GetMap &FORMAT=image%2Fpng&TRANSPARENT=TRUE&LAYERS=nfkort &STYLES=&WIDTH=256 &HEIGHT=256&SRS=EPSG%3A25832&BBOX=559140.625%2C6199218.75%2C560000%2C6200078.125&token=xxx

Alle kald til `Dataforsyningens` webservices skal bruge HTTPS, da der ikke understøttes HTTP, og `token` skal være angivet (undtagen alle DAWA og Inspire OGC-tjenesterne). Kald uden `token` angivet eller med ugyldig `token` vil fejle.

Print baseret på baseret på rasterdata

For digitalt producerede kortværker (det er dem, som man oftest vil benytte PNG formatet med) er det helt afgørende for billed- og dermed printkvaliteten, at det returnerede billede ikke har været udsat for nogen resampling. Resampling forekommer på denne måde:

  • Når man forespørger et billede i en anden pixelstørrelse end det oprindeligt er lagret med
  • Når man forespørger i et andet koordinatsystem end det, data er lagret med.

Det er derfor meget vigtigt, at undgå ovenstående, hvis man ønsker en god kvalitet. Bemærk at resampling ikke er kritisk i forhold til kortværk/datasæt indeholdende mange farver fx ortofoto og skannede kort som de historiske målebordsblade.

En WMS' oprindelige pixelstørrelse vil fremgå af GetCapabilities responset for den enkelte WMS.


WMTS

Formater og projektioner

For GetTile understøttes udelukkende JPEG. Hvis der angives andet end format=image/jpeg, vil der stadig blive leveret en tile i JPEG. Fejlbeskeder er i XML som default iht. standarden, men kan leveres i et image ved parameteren exceptions=inimage eller exceptions=application/vnd.ogc.se_inimage. GetFeatureInfo understøttes ikke.

WMTS-tjenesterne topo_skaermkort og orto_foraar leverer tiles i UTM zone 32 ETRS89 (EPSG:25832).
I WMTS-forespørgsler angives projektioner/koordinatsystemer ikke eksplicit, men der angives et tile matrix set (en tile-inddeling), som så implicit angiver projektion/koordinatsystem. Pt. understøttes kun et tile matrix set med ESPG:25832.

TileMatrix

I GetCapabilities-svaret angives tjenestens tile-inddeling som et TileMatrixSet med en TileMatrix for hvert zoomniveau. Tilestørrelsen er den samme (256 pixel * 256 pixel) for alle zoomniveauer. Origin (TopLeftCorner) er ligeledes fast for alle zoomniveauer: (120000, 6500000). TileMatrixSet "View1" beskriver som udgangspunkt et større område end det, der er dækket af kortdata i de enkelte lag.

Se TileMatrixSet og eksempel for L00

Det er muligt at beskrive udstrækningen af de enkelte lag i GetCapabilities-svaret med TileMatrixLimits. Dette er pt. ikke gjort for lagene i WMTS-tjenester, men i stedet leveres hvide tiles for områder uden kortdata. Det betyder, at parameteren TileRow kan antage værdier fra 0 til MatrixHeight - 1, og at TileCol kan antage værdier fra 0 til MatrixWidth - 1. Hvis man angiver ugyldige værdier af TileRow eller TileCol svares med en exception report.

Elementet TileMatrixLimits i GetCapabilities-svaret giver mulighed for at angive dimensioner på lag-niveau med MinTileRow, MaxTileRow, MinTileCol og MaxTileCol. Derved kan man oplyse om udstrækningen af områderne med kortdata. Når denne mulighed ikke benyttes, men der i stedet leveres hvide tiles, skyldes det flere ting. Hvis man angiver 0 som MinTileRow og MinTileCol validerer det ikke mod det xml-skema, der beskriver GetCapabilities-svar for WMTS. For det givne TileMatrixSet er MinTileRow og MinTileCol netop 0 for området med data, og det er ikke hensigtsmæssigt at ændre på dette af hensyn til fx OpenLayers-support.

Desuden opererer OpenLayers med et enkelt extent (bounding box) for WMTS-laget som helhed, og det er netop afspejlet i TileMatrixSet "View1". Hvis man i en tjeneste udbyder forskellige extents på forskellige zoomniveauer, kan man derfor med OpenLayers komme ud for, at man ved at zoome ind på randområder kommer uden for extent på det pågældende zoomniveau og får en fejlbesked i stedet for en tile. For at undgå disse problemer, benytter vi ikke TileMatrixLimits og opererer med et tile matrix set med samme extent på alle zoomniveauer.

WFS

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 for Web Feature Service Implementation

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.

Begrænsninger

Af driftsmæssige hensyn er der en begrænsning på 10000 objekter i svar fra WFS-tjenester. Overskrides grænsen på de 10000 objekter 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.
For at få et brugbart svar inden for de 10000 objekter 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 Dataforsyningen. 
Ønsker man kortvisning på webløsninger eller systemer med mange brugere henviser vi til WMTS og WMS tjenester.

  • No labels