Denne artikkelen er i første omgang rettet mot utviklere som vil implementere tjenesten i egen løsningen. Ønsker du bare å lage en høydeprofil i et nettkart, kan du gå videre til artikkelen "Høydeprofil for alle".

WPS-tjeneste

Kartverket kjører en OGC Web Processing-tjeneste i eksperimentell drift på http://openwps.statkart.no/skwms1/wps.elevation.

Foreløpig tilbyr vi en tjeneste for å hente høyde- og terrenginformasjon. Se vilkår for bruk.

Tjenesten er tilgjengelig gjennom WPS-protokollen. Under viser vi parametrene og returverdiene i en kort oversikt. Hvis du ikke er kjent med WPS, vil vi be deg lese den detaljerte dokumentasjonen nedenfor.

Tjenesteoversikt

ID Parametre Returverdier Format Eksempel
elevation  x, y, epsg Høyde, terreng og stedsnavn i ett enkelt koordinat float Eksempel
elevationChart

gpx (URL av en GPX-fil)
width - bredde i piksler
height - høyde i piksler

Terrengprofil   som grafikk png Eksempel
elevationJSON gpx (URL av en GPX-fil)  Terrengprofil som JSON-data json Eksempel
elevationXML gpx (URL av en GPX-fil) 
Terrengprofil som XML-data xml Eksempel

Stand: 30.11.2011 – Sjekk selvbeskrivelse av tjenesten gjennom GetCapabilities og DescribeFeature for oppdateringer.

Dokumentasjon

Web Processing Services (WPS) er en XML-basert tjeneste for prosessering av data. Brukerne kan bearbeide egne data og supplere dem med geografisk informasjon fra Statens kartverk.

Ifølge OGC-spesifikasjonen må en WPS-tjeneste støtte tre kommandoer:

  • GetCapabilities
  • DescribeProcess
  • Execute

Kartverkets tjeneste støtter alle disse tre kommandoene. De to første gir utførlig informasjon om tjenesten. En fullstendig GetCapabilities forespørsel er:

http://openwps.statkart.no/skwms1/wps.elevation?request=GetCapabilities&service=WPS&version=1.0.0

Svaret er et XML-dokument som inneholder informasjon om hvem som er ansvarlig for driften av tjenesten og de bearbeidingsprosessene vi tilbyr, som kalles Process.

Mer informasjon om en Process kan hentes med DescribeProcess-kommandoen:

http://openwps.statkart.no/skwms1/wps.elevation?request=DescribeProcess&service=WPS&version=1.0.0&identifier=elevation

Svaret inneholder en beskrivelse av prosessen, parametrene som kreves for å utføre den og returverdiene som kan forventes. I vårt eksempel er beskrivelsen:

The elevation process returns the elevation of a given point in a given coordinate system. It is calculated by interpolation in a 1m network of isometric lines in populated areas (with FKB coverage), and in a 20m network in other areas.

I seksjonen <DataInputs> nevnes parametrene – ”lat” og ”lon” (datatyp ”float”) som beskriver koordinatene i punktet og ”epsg” (datatyp ”integer”), som beskriver projeksjonssystemet.

Prosessen utføres med kallet:
http://openwps.statkart.no/skwms1/wps.elevation?request=Execute&service=WPS&version=1.0.0&identifier=elevation&datainputs=[lat=60;lon=10;epsg=4326]

Dette gir til svar at punktet ligger 140 m.o.h. Du får også informasjonen om terreng (Dyrket mark) og det nærmeste kjente stedsnavnet (Flattum)

For implementering av applikasjoner som bruker WPS-tjenesten henviser vi til WPS-klienter som PyWPS og OpenLayers.

Henting av terrengprofiler

Prosessen som beregner terrengprofil tar en URL som input-parameter. Denne URL-en må peke til en GPX-fil som er tilgjengelig for nedlasting fra prosesseringsserveren.

Tjenesten kan beregne opptil 400 punkter. Dersom det er flere enn 400 punkter i GPX-filen, tas et jevnt fordelt utvalg på 400 punkter (for eksempel annethvert punkt hvis det er 800 punkter, hvert tredje punkt hvis det er 1.200, osv).  For hvert terrengpunkt finnes høyde (i meter over havet) og terrenginformasjon. Hvis punktet er på eller i umiddelbar nærhet til vei, finnes veitype (skogsvei, riksvei, etc.) og hvis det er et stykke fra vei, finnes terrengtypen (skog, myr, etc).

Svaret fra tjenesten kan enten være i form av en URL til en grafisk representasjon av resultatet, i form av en PNG-fil eller som rådata i XML eller JSON.

PNG-filen skal nedlastes så raskt som mulig. Lagrete PNG-filer vil slettes etter en visst tid fra serveren.

Returverdier

  • lon: Lengdegrad av punktet
  • lat: Breddegrad av punktet
  • distance: Distans fra første punktet, i km. Distansen tar ikke hensyn til høyde av punktene, men følger jordkrummning (Great Circle Distance).
  • elevation: Høyde over havnivå, i meter.
  • terrain: Tekststreng som beskriver terrengtype, ifølge arealdekning i N50-datasettet.
  • road: Tekststreng som beskriver vegtype, der en veg finnes i nærheten, ifølge vegtyper i VData-datasettet.
  • name: Nærmeste stedsnavn i SSR-datasettet
  • ssrid: SSR-ID av nærmeste stedsnavn i SSR-datasettet

Eksempelkall mot de tre tjenestene

http://openwps.statkart.no/skwms1/wps.elevation?request=Execute&service=WPS&version=1.0.0&identifier=elevationJSON&datainputs=[gpx=http://myhost/tur2.gpx]

Svar:
<wps:LiteralData dataType="string">

[{"distance": 0.0, "elevation": 100.57514455, "terrain": "Skog", "lon": 10.109010000000001, "lat": 60.090740000000004, "road": null}, {"distance": 0.43136568310168671...

http://openwps.statkart.no/skwms1/wps.elevation?request=Execute&service=WPS&version=1.0.0&identifier=elevationXML&datainputs=[gpx=http://myhost/tur2.gpx]

Svar:
<wps:LiteralData dataType="string">

<pyxs:obj xmlns:pyxs="http://projects.coder.cl/pyxser/model/" version="1.0" type="PointList" module="processes.elevationXML" objid="id112285672">

<pyxs:col type="list" name="list">

<pyxs:col type="dict" name="list">

<pyxs:prop type="float" name="distance">0.0</pyxs:prop>

<pyxs:prop type="float" name="elevation">100.57514455</pyxs:prop>

<pyxs:prop type="str" name="terrain">Skog</pyxs:prop>

<pyxs:prop type="float" name="lon">10.10901</pyxs:prop>

<pyxs:prop type="float" name="lat">60.09074</pyxs:prop>

</pyxs:col>

http://openwps.statkart.no/skwms1/wps.elevation?request=Execute&service=WPS&version=1.0.0&identifier=elevationChart&datainputs=[gpx=http://myhost/tur2.gpx]

 Svar:
<wps:Reference xlink:href="http://wps.statkart.no/chart/chart-18348.png" mimeType="image/png"/>