Notitie
Deze pagina geeft een globaal overzicht van de OGC standaarden en services. Het hoofddoel is deze te demystificeren. Raadpleeg de documentatie van GeoServer voor een volledige beschrijving. Is onderstaande te beknopt opgeschreven of heb je ideeën/suggesties hoe het beter kan? Mis je cruciale informatie om aan de slag te kunnen? Laat het ons weten!
Geo services en APIs¶
De Nederlandse geo-infrastructuur ontsluit gegevens middels een aantal Open Geospatial Consortium (OGC) standaarden. De Open Geospatial Consortium (OGC) is een internationale organisatie die de leiding heeft in de ontwikkeling van interoperabele standaarden voor georuimtelijke en plaatsgebonden diensten. De belangrijkste OGC standaarden in gebruik in Nederland zijn de
- de Web Map Service (WMS) - deze zogenaamde view service genereert een statische kaartuitsnedes van geo-informatie in een raster formaat zoals PNG, GIF of JPEG.
- de Web Feature Service (WFS) - deze zogenaamde download service is een protocol voor het opvragen van geografische vector data en de daarbij behorende attributen, al dan niet via een ruimtelijk filter.
Elk W*S dienst heeft een URL die met HTTP GET en POST requests bevraagd wordt. De WMS GetMap request haalt bijv. een kaartbeeld op.

De services ondersteunen een aantal requests waarmee het mogelijk is om kaartbeelden en vector data op te vragen, filters toe te passen en ruimtelijke analyses uit te voeren.
De eigenschappen van een service zijn in de Capabilities document beschreven. De GetCapabilities
request haalt deze als volgt op:
http://mygeoserver.example.com/ogc-service?
service=WMS/WFS/WMTS/WCS
request=GetCapabilities
In de praktijk worden de services zelden direct bevraagd. Het is gebruikelijker om ze via bijv. OpenLayers, Leaflet, QGIS, ogr2ogr, Python, etc. te benaderen.
Het overgrote deel van de gegevens in het NGR is als WMS/WFS/WCS beschikbaar, evenals de landsdekkende datasets die door PDOK beheerd worden.
W*S services en APIs worden ook aangeboden door data.overheid.nl, Atlas Leefomgeving, Geoportaal Waterschappen, Ruimtelijkeplannen.nl e.a.
De GeoServer documentatie geeft een uitgebreide en gedetailleerde beschrijving van de OGC geo services en APIs.
Web Feature Service (WFS)¶
De Web Feature Service is een webservice voor het opvragen van geografische vector data en de bijbehorende administratieve gegevens. De belangrijke requests zijn:
- GetCapabilities: voor het bekijken van de mogelijkheden van de service
- DescribeFeatureType: haalt de beschrijving op van een of meerdere objecten
- GetFeature: haalt een of meerdere geometrieeen en de bijbehorende attributen op. Deze operatie kan gecombineerd worden met ruimtelijke of attribuut filters en een output-formaat keuze (afhankelijk van implementatie: bijv. GML, SHP, JSON, KML, CSV)
Zie de specificatie voor een volledige beschrijving van de WFS standaard. In de GeoServer WFS documentatie lees je in detail hoe je WFS endpoints kan bevragen.
In Geodata in web apps lees je hoe je WFS in Leaflet en OpenLayers aanspreekt. In Op de desktop: QGIS lees je hoe je WFS data kan downloaden met QGIS.
GetCapabilities¶
De functionaliteit van een WFS endpoint wordt beschreven in een Capabilities document die middels een GetCapabilities request opgehaald kan worden:
http://geodata.nationaalgeoregister.nl/bag/wfs?
service=WFS&
request=GetCapabilities
Resultaat: een XML document waarin o.a. de opgeslagen data types, lagen beschreven worden, ondersteunde coordinatenstelsels, etc.
<wfs:WFS_Capabilities version="2.0.0" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://geodata.nationaalgeoregister.nl/schemas/wfs/2.0/wfs.xsd http://inspire.ec.europa.eu/schemas/common/1.0 http://inspire.ec.europa.eu/schemas/common/1.0/common.xsd http://inspire.ec.europa.eu/schemas/inspire_dls/1.0 http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd" updateSequence="1943">
<ows:ServiceIdentification>...</ows:ServiceIdentification>
<ows:ServiceProvider>...</ows:ServiceProvider>
<ows:OperationsMetadata>...</ows:OperationsMetadata>
<FeatureTypeList>
<FeatureType></FeatureType>
<FeatureType>
<Name>bag:pand</Name>
<Title>pand</Title>
<Abstract>pand</Abstract>
<ows:Keywords>
<ows:Keyword>pand</ows:Keyword>
<ows:Keyword>features</ows:Keyword>
</ows:Keywords>
<DefaultCRS>urn:ogc:def:crs:EPSG::28992</DefaultCRS>
<ows:WGS84BoundingBox>
<ows:LowerCorner>3.2800546964714012 50.748745396375774</ows:LowerCorner>
<ows:UpperCorner>7.224161199744223 53.48515806526503</ows:UpperCorner>
</ows:WGS84BoundingBox>
<MetadataURL xlink:href="http://www.nationaalgeoregister.nl/geonetwork/srv/dut/xml.metadata.get?uuid=aa3b5e6e-7baa-40c0-8972-3353e927ec2f"/>
</FeatureType>
<FeatureType>...</FeatureType>
<FeatureType>...</FeatureType>
<FeatureType>...</FeatureType>
</FeatureTypeList>
<fes:Filter_Capabilities>...</fes:Filter_Capabilities>
</wfs:WFS_Capabilities>
Op de GeoServer WFS GetCapabilities documentatiepagina lees je meer over de componenten van de Capabilities document.
GetFeature¶
Met de GetFeature request is het mogelijk om geometrieën en attributen op te halen. De volgende request haalt 100 gebouwen op uit de Basisregistratie Adressen en Gebouwen
http://geodata.nationaalgeoregister.nl/bag/wfs?
service=WFS&
request=GetFeature&
typeName=bag:pand&
count=100&
startIndex=0&
outputFormat=json
Resultaat: een GeoJSON document met daarin de polygonen van de voetafdruk en attributen van elk gebouw. Voor meer informatie over de count en startIndex parameters, zie onze handleiding.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "pand.7871844",
"geometry_name": "geometrie",
"properties": {
"identificatie": 856100000350209,
"bouwjaar": 1941,
"status": "Pand in gebruik",
"gebruiksdoel": "woonfunctie",
"oppervlakte_min": 147,
"oppervlakte_max": 147,
"aantal_verblijfsobjecten": 1,
"actualiteitsdatum": null
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
179753.466,
405278.319
],
[
179750.226,
405277.631
],
...
[
179753.466,
405278.319
]
]
]
}
},
{...}
]
}
Zie de GeoServer WFS GetFeature documentatie voor een volledige beschrijving van deze request.
Web Map Service (WMS)¶
De Web Map Service is een webservice voor het ophalen van kaartbeelden in een raster formaat zoals PNG, JPEG en GIF. Het is te vergelijken met de static maps APIs van Mapbox en Google Maps

WMS kent minimaal 3 operaties:
- GetCapabilities: retourneert een lijst van beschikbare kaartlagen, projecties, formaten, enz.
- GetMap: retourneert een statisch afbeelding van een kaart
- GetFeatureInfo: geeft attribuutgegevens van een object op een bepaalde plek op de kaart
Zie de WMS specificatie voor een volledige beschrijving. In de GeoServer documentatie lees je hoe je WMS concreet kan bevragen.
In Geodata in web apps lees je hoe je WMS met behulp van Leaflet en OpenLayers aanspreekt.
GetCapabilities¶
De functionaliteit van een WMS endpoint wordt beschreven in een Capabilities document die middels een GetCapabilities request opgehaald wordt:
http://geodata.nationaalgeoregister.nl/ahn2/wms?
service=WMS&
request=GetCapabilities
Resultaat: een XML document waarin o.a. de opgeslagen data types, lagen beschreven worden, ondersteunde coördinatenstelsels, etc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <WMS_Capabilities xmlns="http://www.opengis.net/wms" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.3.0" updateSequence="1913" xsi:schemaLocation="http://www.opengis.net/wms http://geodata.nationaalgeoregister.nl/schemas/wms/1.3.0/capabilities_1_3_0.xsd">
<Service>...</Service>
<Capability>
<Request>
<GetCapabilities>...</GetCapabilities>
<GetMap>...</GetMap>
<GetFeatureInfo>...</GetFeatureInfo>
</Request>
<Exception>...</Exception>
<Layer>
<Title>Actueel Hoogtebestand Nederland 2</Title>
<Abstract>Actueel Hoogtebestand Nederland 2</Abstract>
...
<CRS>EPSG:28992</CRS>
<CRS>EPSG:3857</CRS>
<CRS>EPSG:4326</CRS>
...
<EX_GeographicBoundingBox>...</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326" minx="50.72814376700224" miny="3.2012587672031283" maxx="53.55490608251144" maxy="7.273799656562079"/>
...
<Layer queryable="1" opaque="0">...</Layer>
<Layer queryable="1" opaque="0">
<Name>ahn2_5m</Name>
<Title>ahn2_5m</Title>
<Abstract/>
<KeywordList>...</KeywordList>
<CRS>EPSG:28992</CRS>
<CRS>CRS:84</CRS>
<EX_GeographicBoundingBox>...</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84" minx="3.2012587672391843" miny="50.72814376700224" maxx="7.273799656530975" maxy="53.554906081805136"/>
<BoundingBox CRS="EPSG:28992" minx="10000.0" miny="306250.0" maxx="280000.0" maxy="618750.0"/>
...
<MetadataURL type="TC211">...</MetadataURL>
<Style>...</Style>
</Layer>
<Layer queryable="1" opaque="0">...</Layer>
</Layer>
</Capability>
</WMS_Capabilities>
|
De GeoServer WMS GetCapabilities documentatiepagina beschrijft de verschillende componenten van de Capabilities document.
GetMap¶
De GetMap request haalt een statisch kaartbeeld op.
http://geodata.nationaalgeoregister.nl/ahn2/wms?
service=WMS&
request=GetMap&
layers=ahn2_5m&
bbox=13014,306243,286599,623492&
width=400&
height=500&
format=image/png&
srs=EPSG:28992
Dit resulteert in een PNG afbeelding.

Zie de GeoServer WMS GetMap documentatiepagina voor een volledig overzicht van deze request.
GetFeatureInfo¶
De GetFeatureInfo request haalt de attribuutgegevens op van object(en) op een bepaalde plek op de kaart. Onderstaande request haalt een hoogtewaarde uit de AHN.
http://geodata.nationaalgeoregister.nl/ahn2/wms?
service=wms&
version=1.3.0&
request=getfeatureinfo&
layers=ahn2_5m&
bbox=13014,306243,286599,623492&
width=400&
height=500&
format=image/png&
srs=EPSG:28992&
query_layers=ahn2_5m&
info_format=application/json&
x=353&
y=145
Resultaat: een JSON document met daarin de waarde van de pixel op de gespecificeerde positie. De waarde van de pixel op x = 353, y = 145
stelt in dit geval een hoogte voor en is gelijk aan 17.518 m.
{
"type": "FeatureCollection",
"totalFeatures": "unknown",
"features": [
{
"type": "Feature",
"id": "",
"geometry": null,
"properties": {
"GRAY_INDEX": 17.51810073852539
}
}
],
"crs": null
}
Lees meer over de GetFeatureInfo request op de GeoServer WMS GetFeatureInfo documentatiepagina.
Web Map Tile Services (WMTS)¶
Web Map Tile Services zijn vergelijkbaar met WMS, echter in dit geval is het kaartbeeld opgeknipt in tegels volgens een gedefinieerd grid.

Bron: http://webglearth.com
De tegels worden al dan niet gecached aan serverzijde voor hergebruik. Geonovum heeft ten behoeve van interoperabiliteit binnen Nederland een tiling richtlijn [PDF] voor vastgesteld.
De belangrijkste WMTS GET requests zijn
- GetCapabilities: retourneert de Capabilities document die de beschikbare kaartlagen en grids (per projectie) beschrijft
- GetTile: retourneert een kaarttegel als PNG/JPG
Zie de WMTS speficitatie voor meer informatie.
GetCapabilities¶
De GetCapabilities request haalt de Capabilities document van een WMTS endpoint op.
http://geodata.nationaalgeoregister.nl/tiles/service/wmts?
REQUEST=GetCapabilities
De <Contents>
element (lijn 10) beschrijft de beschikbare kaartlagen. Elk laag heeft een titel (lijn 12), is beschikbaar in een of meerdere formaten (<Format>
element op lijn 21 en 22) en in een of meerdere grids (<TileMatrixSetLink>
element op lijn 24 en 27). Een grid bestaat uit meerdere <TileMatrix>
elementen c.q. ‘zoomniveaus’, zie lijn 35.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <?xml version="1.0" encoding="utf-8"?>
<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<ows:ServiceIdentification>...</ows:ServiceIdentification>
<ows:ServiceProvider>...</ows:ServiceProvider>
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">...</ows:Operation>
<ows:Operation name="GetTile">...</ows:Operation>
<ows:Operation name="GetFeatureInfo">...</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>brtachtergrondkaart</ows:Title>
<ows:WGS84BoundingBox>
<ows:LowerCorner>-1.65729160235431 48.0405018704265</ows:LowerCorner>
<ows:UpperCorner>11.2902578747914 55.9136415748388</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>brtachtergrondkaart</ows:Identifier>
<Style isDefault="true">
<ows:Identifier />
</Style>
<Format>image/png</Format>
<Format>image/png8</Format>
<TileMatrixSetLink>
<TileMatrixSet>EPSG:25831:RWS</TileMatrixSet>
</TileMatrixSetLink>
<TileMatrixSetLink>
<TileMatrixSet>EPSG:28992</TileMatrixSet>
</TileMatrixSetLink>
</Layer>
<Layer>...</Layer>
...
<TileMatrixSet>
<ows:Identifier>EPSG:28992</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG::28992</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>EPSG:28992:0</ows:Identifier>
<ScaleDenominator>1.2288E7</ScaleDenominator>
<TopLeftCorner>-285401.92 903402.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>...</TileMatrix>
...
</TileMatrixSet>
<TileMatrixSet>...</TileMatrixSet>
...
</Contents>
<ServiceMetadataURL xlink:href="http://geodata.nationaalgeoregister.nl/tiles/service/wmts?REQUEST=getcapabilities&VERSION=1.0.0" />
</Capabilities>
|
GetTile¶
De GetTile request haalt een kaartbeeld op.
http://geodata.nationaalgeoregister.nl/wmts?
SERVICE=WMTS
&REQUEST=GetTile
&VERSION=1.0.0
&LAYER=brtachtergrondkaart
&STYLE=default
&TILEMATRIXSET=EPSG:28992
&TILEMATRIX=EPSG:28992:0
&TILEROW=0
&TILECOL=0
&FORMAT=image/png8
De TILEROW
en TILECOL
parameters specificeren welk tegel opgehaald moet worden. De TILEROW
parameter is equivalent aan het y-coördinaat en neemt in waarde af naarmate y
groter wordt. TILECOL
parameter is equivalent aan het x-coördinaat en neemt in waarde toe als x
groeit. Het laatste getal van de TILEMATRIX
parameter geeft het zoomniveau weer. Bovenstaand request haalt de bovenste tegel van de tegelpyramide op.

De kaartafbeelding op (row,col) = (4,3) op het vierde zoomniveau laat de omgeving van Dordrecht zien.
http://geodata.nationaalgeoregister.nl/wmts/?
SERVICE=WMTS
&REQUEST=GetTile
&VERSION=1.0.0
&LAYER=brtachtergrondkaart
&STYLE=default
&TILEMATRIXSET=EPSG:28992
&TILEMATRIX=EPSG:28992:3
&TILEROW=4
&TILECOL=3
&FORMAT=image/png8

WMTS wordt out-of-the-box door QGIS en OpenLayers ondersteund.
Tile Map Service (TMS)¶
Notitie
TMS is geen OGC standaard. Gebruikers worden geadviseerd om zoveel mogelijk gebruik te maken van WMTS.
De Tiled Web Service geeft toegang tot opgeknipte kaartafbeeldingen (c.q. tegels) op vaste schalen. TMS endpoints zijn RESTful: elk object beschikt over een eigen URL volgens de volgende structuur
http://geoserver.example.com/tms/<tms_versie_nummer>/<naam_van_kaart>/<coördinatenstelsel>/<bestandsformaat>/<z>/<x>/<y>.<bestandsfromaat>
waarbij z
, x
, y
de coördinaten van een kaartafbeelding zijn. Zie de OSGeo TMS specificatie voor meer informatie.
De TMS root resource is de Capabilities document die de beschikbare kaartlagen en de bijbehorende URLs beschrijft. De Capabilities document van bijv. het Nationaal GeoRegister TMS endpoint bevindt zich op https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/
<TileMapService version="1.0.0" services="https://geodata.nationaalgeoregister.nl/tiles/service">
<Title>Tile Map Service</Title>
<Abstract>Tile Map Services</Abstract>
<TileMaps>
...
<TileMap title="brtachtergrondkaart" srs="EPSG:28992" profile="local" href="https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG:28992"/>
<TileMap title="brtachtergrondkaart" srs="EPSG:25831" profile="local" href="https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG:25831:RWS"/>
<TileMap title="brtachtergrondkaart" srs="OSGEO:41001" profile="global-mercator" href="https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG:3857"/>
<TileMap title="brtachtergrondkaartgrijs" srs="EPSG:28992" profile="local" href="https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaartgrijs/EPSG:28992"/>
...
</TileMaps>
</TileMapService>
Elke kaart wordt door een <TileMap>
element beschreven. Zo is bijv. de Capabilities document van de BRT Achtergrondkaart te vinden op https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG:28992. Hierin worden o.a. het bereik van de laag en de beschikbare zoomniveaus beschreven.
<TileMap version="1.0.0">
<Title>brtachtergrondkaart</Title>
<Abstract/>
<SRS>EPSG:28992</SRS>
<BoundingBox minx="-285401.92" miny="22598.08" maxx="595401.92" maxy="903401.92" />
<Origin x="-285401.92" y="22598.08" />
<TileFormat width="256" height="256" mime-type="image/png" extension="png" />
<TileSets profile="local">
<TileSet href="https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG%3A28992/0" units-per-pixel="3440.64" order="0" />
<TileSet href="https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG%3A28992/1" units-per-pixel="1720.32" order="1" />
<TileSet href="https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG%3A28992/2" units-per-pixel="860.16" order="2" />
...
</TileSets>
</TileMap>
De eerste afbeelding van de BRT Achtergrondkaart bevindt zich op (z,x,y) = (0,0,0). De bijbehorende URL is https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG:28992/0/0/0.png hetgeen een overzicht van Nederland geeft.

De kaartafbeelding op (x,y) = (3,3) van de 4de zoomlevel is te vinden op https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaart/EPSG:28992/3/3/3.png en toont Dordrecht en omgeving.

Hoewel TMS geen OGC standaard is wordt het out-of-the-box door Leaflet en OpenLayers ondersteund. Zie Geodata in web apps voor code voorbeelden.
Atom feeds¶
Een aantal landsdekkende datasets worden als downloadbare bestanden aangeboden via Atom feeds. Atom feeds zijn webfeeds die, net zoals RSS, geabonneerde gebruikers automatisch op de hoogte brengen van nieuwe releases en updates.
Open de Atom feed in een feed reader (bijv. Feedly) of Firefox om de bijgesloten ZIP bestanden te downloaden. Indien deze niet beschikbaar zijn is het bestand ook via het entry
-> link
element te downloaden, zie regels 9-10 in onderstaand voorbeeld.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss">
...
<entry>
<id>inspireadressen.zip</id>
<title type="text" xml:lang="nl">inspireadressen.zip</title>
<content type="text">Downloadgrootte: 1.4 GB</content>
<updated>2015-07-07T22:00:00.000Z</updated>
<link href="http://geodata.nationaalgeoregister.nl/inspireadressen/extract/inspireadressen.zip" rel="alternate" type="application/x-compressed" hreflang="nl" length="1517044532"/>
<link href="http://geodata.nationaalgeoregister.nl/inspireadressen/extract/inspireadressen.zip" hreflang="nl"/>
<rights type="text">Copyright (c) 2012, Kadaster en Openbare Registers</rights>
<category term="http://www.opengis.net/def/crs/EPSG/0/28992" label="Amersfoort / RD New"/>
<georss:polygon>50.6 3.1 50.6 7.3 53.7 7.3 53.7 3.1 50.6 3.1</georss:polygon>
</entry>
</feed>
|
De Atom feeds van PDOK zijn te vinden op https://www.pdok.nl/en/products/pdok-downloads/atomfeeds
Atom feeds in het NGR zijn te vinden door het Online Bronnen filter Atom
te gebruiken en/of het zoekresultaat te filtreren op Downloadbare bestanden
.
Web Coverage Service (WCS)¶
Het WCS protocol kan gebruikt worden om multi dimensionale raster data over internet te ontsluiten. PDOK biedt bijvooreeld het Algemeen Hoogte bestand Nederland aan als WCS. Lees meer op http://www.opengeospatial.org/standards/wcs. Voor het ontsluiten van WCS kan bijvoorbeeld QGIS of gvSIG gebruikt worden. GDAL en Rasdaman bieden bibliotheken om analyses op CSW uit te voeren. Voor het ontsluiten van raster bestanden als WCS kan bijvoorbeeld GeoServer of Mapserver gebruikt worden.
INSPIRE werkt aan technical guidelines voor het opzetten van een download service op basis van WCS https://ies-svn.jrc.ec.europa.eu/attachments/download/947/Study_WCS_INSPIRE_v0.3.pdf
Catalogue Service for the Web (CSW)¶
Het Nationaal GeoRegister (NGR) is een catalogus met informatie over ruimtelijke datasets en services. De CSW API stelt ons in staat om door de metadata in het NGR te zoeken. Zie de OGC CSW specificatie voor meer informatie.
De CSW endpoint wordt via HTTP GET of XML over HTTP POST requests bevraagd. De belangrijkste operaties om metadata op te vragen zijn:
- GetCapabilities: voor het bekijken van de mogelijkheden van de service. Deze operatie kan handig zijn om te zien welke filters ondersteund worden bijvorrbeeld.
- GetRecords: om meerdere metadata documenten (records) op te vragen, bijvoorbeeld met een zoekfilter.
- GetRecordById: om 1 metadata document op te vragen, via het metadata ID.
GetCapabilities¶
Middels een GetCapabilities request kan opgevraagd worden wat de server kan. Door het volgende HTTP GET request te versturen, kan je zien wat de server aan functionaliteit biedt:
http://nationaalgeoregister.nl/geonetwork/srv/dut/csw?
request=GetCapabilities&
service=CSW
Resultaat: een XML document met hierin de operaties en filters die de endpoint ondersteunt en de URLs voor het versturen van de requests. Daarnaast bevat het document de beschikbare formaten om metadata op te vragen.
GetRecords¶
De GetRecords request haalt metadata records op.
http://nationaalgeoregister.nl/geonetwork/srv/dut/inspire?
service=CSW&
version=2.0.2&
request=GetRecords&
namespace=xmlns%28csw=http://www.opengis.net/cat/csw%29&
resultType=results&
outputSchema=http://www.opengis.net/cat/csw/2.0.2&outputFormat=application/xml&
maxRecords=10&
typeNames=csw:Record&
elementSetName=full&
constraintLanguage=CQL_TEXT&
constraint_language_version=1.1.0&
constraint=AnyText+LIKE+%27%25water%25%27
Resultaat: records die over “water” gaan in een standaard CSW formaat dat Dublin Core elementen bevat.
<csw:GetRecordsResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">
<csw:SearchStatus timestamp="2015-07-30T21:35:48"/>
<csw:SearchResults numberOfRecordsMatched="174" numberOfRecordsReturned="10" elementSet="full" nextRecord="11">
<csw:Record xmlns:ows="http://www.opengis.net/ows" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/">
<dc:identifier>777f41ee-8269-4bbc-b0e4-f889c62be099</dc:identifier>
<dc:date>2015-02-27</dc:date>
<dc:title>...</dc:title>
<dc:type>service</dc:type>
<dc:subject>Faciliteiten voor productie en industrie</dc:subject>
<dc:subject>Faciliteiten voor productie en industrie</dc:subject>
<dc:subject>infoMapAccessService</dc:subject>
<dct:abstract>...</dct:abstract>
<dc:description>...</dc:description>
<dc:rights>otherRestrictions</dc:rights>
<dc:URI protocol="OGC:WMS" name="inspire:facility_pollutant_transfer" description="Afgevoerde hoeveelheid afval in 2011 vanuit de industrie (WMS)">http://inspire.rivm.nl/geoserver/wms?</dc:URI>
</csw:Record>
<csw:Record xmlns:ows="http://www.opengis.net/ows" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/">...</csw:Record>
...
</csw:SearchResults>
</csw:GetRecordsResponse>
De belangrijkste aanpasbare parameters van dit request zijn:
outputSchema
– de format van de metadata. Mogelijke waardes:http://www.opengis.net/cat/csw/2.0.2
voor Dublin Core,http://www.isotc211.org/2005/gmd
voor ISOtypeNames
– Mogelijke waardes:csw:Record
voor Dublin Core metadata,gmd:MD_Metadata
voor ISO metadatamaxRecords
– het maximum aantal recordselementSetName
– Mogelijke waardes:full
,summary
constraint
– de toe te passen filter, zie Zoeken via filters.resultType
– bepaalt wat er teruggestuurd wordt: resultaten of aantal records die voldoen aan deconstraint
filter. Mogelijke waardes:results
,hits
startPosition
– bepaalt waar de resultatenlijst start. In combinatie metmaxRecords
is het mogelijk om resultaten in delen op te vragen, zie het GetRecord resultaten in delen opvragen voorbeeld.
Notitie
Het NGR ondersteunt enkel application/xml
als waarde voor outputFormat
. Zie de GetRecords request specificatie in de Capabilities document.
Zoeken via filters¶
Het NGR staat allerlei zoekopdrachten toe, ook via de CSW. De zoekopdracht wordt in de constraint
parameter gedefinieerd middels een Common Query Language (CQL). Het NGR ondersteunt een groot aantal zoekparameters die heel gericht op metadata elementen kunnen zoeken. De Capabilities document somt deze op in de lijst met Queryables (SupportedISOQueryables
en AdditionalQueryables
). Bijv. de AnyText
filter doorzoekt alle tekstvelden van een record op bijv. de term “water”
constraint=AnyText+LIKE+%27%25water%25%27
De waarde van de constraint
parameter moet URL encoded zijn. AnyText+LIKE+%27%25water%25%27
is URL gecodeerd van AnyText LIKE '%water%'
. De percentage-tekens zijn wildcards. Het online tooltje: http://meyerweb.com/eric/tools/dencoder/ kan helpen bij het coderen/decoderen van de waardes.
Een ander filterparameter is bijv. ServiceType
. Hiermee is het mogelijk om te zoeken op het type services bijv. een “view” service:
constraint=ServiceType='view'
(gecodeerd:constraint=ServiceType%3D%27view%27)
Een ander voorbeeld is het filteren op waardes in de title van een record:
constraint=Title LIKE '%dijken%'
(gecodeerd:constraint=Title LIKE '%25dijken%25')
Zie de CSW specificatie voor meer informatie.
GetRecordById¶
Het request GetRecordById kan handig zijn om naar 1 specifiek metadata record te verwijzen. Het request is korter dan GetRecords. Een voorbeeld is:
http://nationaalgeoregister.nl/geonetwork/srv/dut/csw?
SERVICE=CSW&
version=2.0.2&
REQUEST=GetRecordById&
elementSetName=full&
OutputSchema=http://www.isotc211.org/2005/gmd&
ID=85fdc4ee-05fa-455d-bf11-eb0b927e6f77
Dit request vraagt in ISO formaat de metadata op van het record met ID 85fdc4ee-05fa-455d-bf11-eb0b927e6f77
. Dit ID is te vinden door de resultaten van de GetRecords request te bestuderen.
INSPIRE metadata¶
Op zoek naar alleen INSPIRE metadata (en niet alle Nederlandse metadata)? Gebruik dan in plaats van de URL:
http://nationaalgeoregister.nl/geonetwork/srv/dut/csw
De URL van het INSPIRE endpoint:
http://nationaalgeoregister.nl/geonetwork/srv/dut/inspire
Deze laatste URL is ook van een gewone CSW, maar de inhoud betreft alleen de metadata voor INSPIRE.
Tooling met CSW ondersteuning¶
In veel gevallen is de CSW endpoint effectiever te bevragen middels een bestaande bijv.
Veel GIS pakketten bieden ondersteuning voor CSW via plug-ins.
Voorbeelden¶
Eerste 10 metadata records ophalen¶
Eerste 10 records (1 t/m 10) die over water gaan.
http://nationaalgeoregister.nl/geonetwork/srv/dut/inspire?
service=CSW&
version=2.0.2&
request=GetRecords&
namespace=xmlns%28csw=http://www.opengis.net/cat/csw%29&
resultType=results&
outputSchema=http://www.opengis.net/cat/csw/2.0.2&
outputFormat=application/xml&
maxRecords=10&
startposition=1&
typeNames=csw:Record&
elementSetName=full&
constraintLanguage=CQL_TEXT&
constraint_language_version=1.1.0&
constraint=AnyText+LIKE+%27%25water%25%27
GetRecord resultaten in delen opvragen¶
Het NGR bevat veel metadata records. Door de maxRecords
en startPosition
parameters te gebruiken kan je de metadata records in delen opvragen. Na het ophalen van de eerste 10 records (zie vorige voorbeeld) halen we de volgende 10 records binnen door startPosition
de waarde 10 toe te kennen. Derde blok van tien records halen we binnen met maxRecords=10
en startposition=21
.
http://nationaalgeoregister.nl/geonetwork/srv/dut/inspire?
service=CSW&
version=2.0.2&
request=GetRecords&
namespace=xmlns%28csw=http://www.opengis.net/cat/csw%29&
resultType=results&
outputSchema=http://www.opengis.net/cat/csw/2.0.2&
outputFormat=application/xml&
maxRecords=10&
startposition=21&
typeNames=csw:Record&
elementSetName=full&constraintLanguage=CQL_TEXT&
constraint_language_version=1.1.0&
constraint=AnyText+LIKE+%27%25water%25%27
Metadata als Dublin Core ophalen¶
Opvragen van metadata in het Dublin Core formaat gaat met de parameters:
outputSchema=http://www.opengis.net/cat/csw/2.0.2&
typeNames=csw:Record
Metadata als ISO ophalen¶
Vervang de waardes van de outputSchema
en typeNames
parameters met:
outputSchema=http://www.isotc211.org/2005/gmd&
typeNames=gmd:MD_Metadata
om metadata records in ISO formaat op te vragen.