@DJVD er zijn twee zaken die je moet verifieren alvorens de response van de OGC webservice verder in je applicatie te consumeren:
- is het request succesvol, d.w.z. krijg ik een
HTTP 200 OK
response terug - matched de
Content-Type
response header met hetgeen wat ik heb opgevraagd
Het probleem is namelijk dat de “oude” OGC Webservice-types (WMS, WFS, WCS, etc.) bijna altijd een HTTP 200 response teruggeven. Ook als de service geen response kan genereren als antwoord op je request. In dat geval krijg je veelal een XML document terug met de foutmelding, dan zie je in de Content-Type
response header de volgende waarde (of een variatie daarop): application/vnd.ogc.se_xml
Als we gaan kijken of je requests voldoen aan beide voorwaarden (HTTP 200 OK
response, Content-Type
matched met gevraagd content-type) dan zie je dat geen van de requests succesvol zijn beantwoord door de service:
# request 1 - Content-Type matched niet
curl -sD - "https://geodata.nationaalgeoregister.nl/ahn3/wcs?Service=WCS&Version=1.0.0&Request=GetCoverage&Coverage=ahn3_05m_dtm&CRS=EPSG:28992&BBOX=bbox=104446,485940,104746,486240&outputFormat=GEOTIFF" -o /dev/null
HTTP/1.1 200 OK
Date: Tue, 07 Feb 2023 10:19:33 GMT
Server: lighttpd/1.4.53-devel-lighttpd-1.4.53
Content-Length: 529
Content-Type: application/vnd.ogc.se_xml; charset=UTF-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept
# request 2 - Content-Type matched niet
curl -sD - "https://geodata.nationaalgeoregister.nl/ahn3/wms?request=ahn3_05m_dtm&bbox=104446,485940,104746,486240&srs=EPSG:28992&outputFormat=application/Geotiff" -o /dev/null
HTTP/1.1 200
Date: Tue, 07 Feb 2023 10:28:21 GMT
Server: Apache
Content-Type: text/xml;charset=utf-8
Content-Length: 370
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept
# request 3 - Content-Type matched niet
curl -sD - "https://geodata.nationaalgeoregister.nl/ahn3/wcs?Service=WCS&Version=1.0.0&Request=GetCoverage&Coverage=ahn3_05m_dtm&CRS=EPSG:28992&BBOX=bbox=104446,485940,104746,486240&outputFormat=GEOTIFF" -o /dev/null
HTTP/1.1 200 OK
Date: Tue, 07 Feb 2023 10:28:25 GMT
Server: lighttpd/1.4.53-devel-lighttpd-1.4.53
Content-Length: 529
Content-Type: application/vnd.ogc.se_xml; charset=UTF-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept
N.B. De geodata.nationaalgeoregister.nl AHN3 services gaan per 17-02-2023 uit, zie Nieuwe URL’s AHN3 en Luchtfoto labels na cloudmigratie. Er zijn vervangende services zie hiervoor het geoforum bericht.
Nu is de vraag waarom falen deze requests? Hieronder per request een antwoord.
Request 1
https://geodata.nationaalgeoregister.nl/ahn3/wcs?Service=WCS&Version=2.0.1&Request=GetCoverage&CoverageID=ahn3_05m_dtm&BBOX=104446,485940,104746,486240&CRS=EPSG:28992outputFormat=application/json
Je vraag outputFormat application/json
op maar dat is geen outputFormat wat de WCS service aan biedt. Zie het capabilities document voor een lijst van outputformats:
N.B. Dit is het capabilities document voor WCS versie 2.0. De WCS service ondersteunt meerdere WCS versies. De
1.0.0
versie bevat geen lijst met outputFormats in het capabilities document, om deze op te halen dien je eendescribeCoverage
request te doen (bij versie1.0.0
)
Request 2
https://geodata.nationaalgeoregister.nl/ahn3/wms?request=ahn3_05m_dtm&bbox=104446,485940,104746,486240&srs=EPSG:28992&outputFormat=application/Geotiff
De WMS service biedt geen outputFormat GeoTiff aan, zie wederom het capabilities document. Daarbij dient in de request
parameter een request type te worden ingevuld wat de service ondersteunt, zie de capabilities voor de lijst van request types (dus GetCapabilities
, GetFeatureInfo
, GetMap
:
Request 3
https://geodata.nationaalgeoregister.nl/ahn3/wcs?Service=WCS&Version=1.0.0&Request=GetCoverage&Coverage=ahn3_05m_dtm&CRS=EPSG:28992&BBOX=bbox=104446,485940,104746,486240&outputFormat=GEOTIFF
De BBOX
query parameter is niet geldig, want bevat nog eens bbox=
. Daarnaast ontbreek een resx
en resy
parameter voor de WCS service om te bepalen met welke resolutie die het raster moet uitserveren. Verder matched het outputFormat
niet met wat wordt aangeboden voor deze “coverage” (WCS service staat voor Web Coverage Service en serveert dus “coverages” uit), zie hiervoor het describeCoverage request
Bij deze nog een werkend request: https://geodata.nationaalgeoregister.nl/ahn3/wcs?Service=WCS&Version=1.0.0&Request=GetCoverage&Coverage=ahn3_05m_dtm&CRS=EPSG:28992&BBOX=104446,485940,104746,486240&format=GEOTIFF_FLOAT32&resx=1&resy=1
.
Zie ook eerder draadjes over WCS bevraging op het forum, bijv.: