Brukarrettleiing for høgdeprofil-API
Denne rettleiaren er retta mot utviklarar som vil bruke Kartverkets API for høgdeprofil.
Med API-et kan du legge inn ein funksjon i kartet som genererer høgdeprofil frå ei sjølvvald rute. Vi i Kartverket bruker dette i norgeskart.no.
WPS-teneste
API-et er ei OGC Web Processing-teneste i eksperimentell drift på openwps.statkart.no/skwms1/wps.elevation2. Førebels hentar det høgde/djupne- og terrenginformasjon.
Tenesta er tilgjengeleg gjennom WPS-protokollen. Nedanfor viser vi parametrane og returverdiane i ei kort oversikt. Dersom du ikkje er kjend med WPS, vil vi be deg lese den detaljerte dokumentasjonen lenger nede.
Merk at du skal nytte WPS-tenesta dersom du ønskjer å hente ut ein visuell høgdeprofil, men dersom du primært er ute etter høgder og djupner i JSON-format, tilrår vi at du nyttar eit nytt høgdedata-API i staden for. Dette API-et med dokumentasjon er tilgjengelig her.
WPS-tenesteoversikt
Elevation:
- Id: elevation
- Parametrar: x, y, epsg
- Returverdiar: Høgde/djupne, terreng og gyldige stadnamn i eitt enkelt koordinat
- Format: float
- Eksempel
ElevationChart:
- Id: elevationChart
- Parametrar: gpx (URL av ei GPX-fil), width (breidde i pikslar), height (høgde i pikslar)
- Returverdiar: Terrengprofil som grafikk
- Format: pnf
- Eksempel
Elevation JSON
- Id: elevationJSON
- Parametrar: gpx (URL av ei GPX-fil)
- Returverdiar: Info om høgde og djupn m.m. for punkta i gpx-fila som JSON-data
- Format: JSON
- Eksempel
ElevationXML
- Id: elevationXML
- Parametrar: gpx (URL av ei GPX-fil)
- Returverdiar: Info om høgde og djupn m.m. for punkta i gpx-fila som XML-data
- Format: XML
- Eksempel
Dokumentasjon
Web Processing Services (WPS) er ein XML-basert teneste for prosessering av data. Brukarane kan bearbeide eigne data og supplere med geografisk informasjon frå Kartverket. Ifølgje OGC-spesifikasjonen må ei WPS-teneste støtte tre kommandoar:
- GetCapabilities
- DescribeProcess
- Execute
Kartverkets teneste støttar alle desse kommandoane. Dei to første gir utførleg informasjon om tenesta. Ein fullstendig GetCapabilities-førespurnad er:
http://openwps.statkart.no/skwms1/wps.elevation2?request=GetCapabilities&service=WPS&version=1.0.0
Svaret er eit XML-dokument som inneheld informasjon om kven som er ansvarleg for drift av tenesta og dei bearbeidingsprosessane vi tilbyr, som blir kalla Process. Meir informasjon om ein Process kan hentast med DescribeProcess-kommandoen:
http://openwps.statkart.no/skwms1/wps.elevation2?request=DescribeProcess&service=WPS&version=1.0.0&identifier=elevation
Svaret gjer greie for prosessen, parametra som krevst for å utføre han og returverdiane som kan forventast. I eksemplet vårt blir forklaringa slik:
"The elevation process returns the elevation and place name of a given point in a given coordinate system. The elevation 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. It also returns the depth if the given point is in the ocean and close to the coast. The depth is calculated by interpolation in a 10m network of isometric lines (2 to 5 meters in shallow water close to the coast). This data is not to be used for navigational purposes."
I seksjonen <DataInputs> blir parametrane ”lat” og ”lon” (datatyp ”float”) nemnde. Dei viser koordinatane i punktet og ”epsg” (datatyp ”integer”) som forklarer projeksjonssystemet. Prosessen blir utført med kallet:
http://openwps.statkart.no/skwms1/wps.elevation2?request=Execute&service=WPS&version=1.0.0&identifier=elevation&datainputs=lat=60;lon=10;epsg=4326
Dette gir til svar at punktet ligg 140 m.o.h. Du får også informasjonen om terreng (Dyrka mark) og det nærmaste kjende stadnamnet (Flattum). Hadde det vore fleire gyldige stadnamn for same punkt (opp til 3), ville dei blitt returnert under placename1- og placename2-elementa.
For å implementere applikasjonar som bruker WPS-tenesta, viser vi til WPS-klientar som OpenLayers og programvareutvidinga "WPS Client" for QGIS.
Henting av terrengprofilar
Prosessen som bereknar terrengprofil, tar ein URL som input-parameter. Denne URL-en må peike til ei GPX-fil som er tilgjengeleg for nedlasting frå prosesseringsserveren. Tenesta kan berekne opptil 400 punkt. Dersom det er fleire enn 400 punkt i GPX-fila, tar ho eit jamt fordelt utval på 400 punkt (til dømes annakvart punkt dersom det er 800 punkt, kvart tredje punkt dersom det er 1.200, og så vidare).
For kvert terrengpunkt er det høgde (i meter over havet) og terrenginformasjon. Dersom punktet er på eller umiddelbar nært veg, er det med vegtype (skogsveg, riksveg etc.) og dersom det er eit stykke frå vei, er terrengtypen (skog, myr, etc) med.
Svaret frå tenesta kan anten vere i form av ein URL til ein grafisk representasjon av resultatet, i form av ei PNG-fil eller som rådata i XML eller JSON. PNG-fila skal lastast ned så raskt som mogleg. Lagra PNG-filer vil bli sletta etter ei visst tid frå serveren.
Returverdiar
- lon: Lengdegrad av punktet
- lat: Breiddegrad av punktet
- distance: Distanse frå første punktet, i km. Distansen tar ikkje omsyn til høgde av punkta men følgjer jordkrumming (Great Circle Distance).
- elevation: Høgde over havnivå (eller under havnivå, gitt ved eit minusteikn), i meter.
- terrain: Tekststreng som skildrar terrengtype, ifølgje arealdekning i N50-datasettet.
- road: Tekststreng som skildrar vegtype, der ein veg er i nærleiken, ifølgje vegtypar i VData-datasettet.
- name: Nærmaste stadnamn i SSR-datasettet
- stedsnummer: stadnummer (tidlegare kalla ssrid) av nærmaste stadnamn i SSR-datasettet
Eksempelkall mot dei tre tenestene
Eksempel:
http://openwps.statkart.no/skwms1/wps.elevation2?request=Execute&service=WPS&version=1.0.0&identifier=elevationJSON&datainputs=gpx=@xlink:href=http://myhost/tur2.gpx
Svar:
<wps:ComplexData mimeType="application/json">
[{"distance": 0.0, "elevation": 37.0, "lat": 58.37403464174541, "lon": 8.660468647454548, "road": "", "terrain": "TettBebyggelse"}, {"distance": 0.020...
Eksempel:
http://openwps.statkart.no/skwms1/wps.elevation2?request=Execute&service=WPS&version=1.0.0&identifier=elevationXML&datainputs=gpx=@xlink:href=http://myhost/tur2.gpx
Svar:
- <wps:ComplexData mimeType="application/xml">
- <root>
- <point>
- <distance>0.0</distance>
- <elevation>37.0</elevation>
- <lat>58.37403464174541</lat>
- <lon>8.660468647454548</lon>
- <name>Hausland</name>
- </road>
- <stedsnummer>789520</stedsnummer>
- <terrain>TettBebyggelse</terrain>
- </point>
Eksempel:
http://openwps.statkart.no/skwms1/wps.elevation2?request=Execute&service=WPS&version=1.0.0&identifier=elevationChart&datainputs=gpx=@xlink:href=http://myhost/tur2.gpx
Svar:
<wps:ComplexData mimeType="image/png" >https://wps.geonorge.no/res/32359478117574003.png</wps:ComplexData>
E-posten er sendt