Höhenabfrage

Meter über dem mittleren Meeresspiegel für einen oder viele Punkte.

GEThttps://api.mygeocode.com/v1/elevation

Parameter

ParameterTypBeschreibung
lat, lonerforderlich*ZahlEin einzelner Punkt.
locationserforderlich*String*Alternative zu lat und lon: bis zu 100 Punkte als lat,lon|lat,lon|.... Jeder Punkt zählt als eine Anfrage.
keyoptionalStringAPI-Schlüssel, falls nicht als Header gesendet.

Der Endpunkt akzeptiert außerdem POST mit einem JSON-Body {"locations": [[lat, lon], ...]} für lange Listen, die nicht in eine URL passen würden.

Beispiel

$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/elevation?locations=36.2381,-116.8175|31.5590,35.4732"
const points = [[36.2381, -116.8175], [31.5590, 35.4732]];
const url = new URL("https://api.mygeocode.com/v1/elevation");
url.searchParams.set("locations", points.map((p) => p.join(",")).join("|"));

const { results } = await (await fetch(url, { headers: { "X-API-Key": "YOUR_KEY" } })).json();
results.forEach((r) => console.log(r.elevation_m));
import requests

points = [(36.2381, -116.8175), (31.5590, 35.4732)]
locations = "|".join(f"{lat},{lon}" for lat, lon in points)
r = requests.get("https://api.mygeocode.com/v1/elevation", params={"locations": locations}, headers={"X-API-Key": "YOUR_KEY"}, timeout=10)
for item in r.json()["results"]:
    print(item["elevation_m"])
Antwort
{
  "status": "ok",
  "results": [
    { "lat": 36.2381, "lon": -116.8175, "elevation_m": -82.0, "resolution_m": 463.8 },
    { "lat": 31.559, "lon": 35.4732, "elevation_m": -416.0, "resolution_m": 463.8 }
  ]
}

Antwortfelder

FeldTypBeschreibung
resultsArrayEin Eintrag pro Punkt, in der Reihenfolge der Eingabe.
results[].elevation_mZahl oder nullMeter über dem mittleren Meeresspiegel, eine Nachkommastelle. Negativ unter dem Meeresspiegel, einschließlich des Meeresbodens auf offener See (der Datensatz enthält Bathymetrie). null nur dort, wo der Datensatz keinen Wert hat.
results[].resolution_mZahlRasterabstand des Datensatzes in Metern: 463.8 (15 Bogensekunden).

Hinweise

Dieselbe Abfrage in den Formaten anderer Anbieter

Wenn Sie bereits Code für einen dieser Anbieter geschrieben haben, behalten Sie ihn: Der Drop-in-Host akzeptiert denselben Pfad und dieselben Parameter und antwortet in der Antwortstruktur dieses Anbieters, mit diesem Endpunkt dahinter. Siehe So funktionieren die Drop-in-Hosts.

AnbieterHostPfad
Google Maps Platformgapi.mygeocode.com/maps/api/elevation/json?locations=lat,lng|lat,lng
/maps/api/elevation/json?locations=enc:POLYLINE
/maps/api/elevation/json?path=lat,lng|lat,lng&samples=N
Bing Maps REST Servicesbing.mygeocode.com/REST/v1/Elevation/List?points=lat,lon,lat,lon
/REST/v1/Elevation/Polyline?points=lat,lon,lat,lon&samples=N
/REST/v1/Elevation/Bounds?bounds=S,W,N,E&rows=R&cols=C (GET oder POST)
MapQuestmapquest.mygeocode.com/elevation/v1/profile?latLngCollection=lat,lng,lat,lng&shapeFormat=raw&unit=m
Open-Elevationopenelevation.mygeocode.com/api/v1/lookup?locations=lat,lon|lat,lon
/api/v1/lookup (POST, JSON body)

Fehler

400 invalid_request, wenn weder ein Punkt noch locations angegeben ist, wenn eine Koordinate außerhalb des gültigen Bereichs liegt oder fehlerhaft ist, wenn es mehr als 100 Punkte sind oder wenn samples, rows oder cols mehr als 100 ergeben würden. 503 backend_unavailable, wenn der Höhendienst nicht antwortet; es wird nichts gezählt.