Определение высоты

Высота в метрах над средним уровнем моря для одной или многих точек.

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

Параметры

ПараметрТипОписание
lat, lonобязательный*числоОдна точка.
locationsобязательный*строка*Альтернатива lat и lon: до 100 точек в виде lat,lon|lat,lon|.... Каждая точка засчитывается как один запрос.
keyнеобязательныйстрокаAPI-ключ, если он не передан в заголовке.

Эндпоинт также принимает POST с телом JSON {"locations": [[lat, lon], ...]} для длинных списков, которые не поместились бы в URL.

Пример

$ 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"])
Ответ
{
  "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 }
  ]
}

Поля ответа

ПолеТипОписание
resultsмассивПо одной записи на точку, в порядке ввода.
results[].elevation_mчисло или nullМетры над средним уровнем моря, с одним знаком после запятой. Отрицательные значения ниже уровня моря, в том числе для морского дна в открытом океане (набор данных содержит батиметрию). null только там, где в наборе данных нет значения.
results[].resolution_mчислоШаг сетки набора данных в метрах: 463.8 (15 угловых секунд).

Примечания

Тот же запрос в форматах других провайдеров

Если у вас уже есть код, написанный под одного из этих провайдеров, оставьте его: совместимый хост принимает тот же путь и те же параметры и отвечает в формате ответа этого провайдера, а за ним работает этот эндпоинт. См. как работают совместимые хосты.

ПровайдерХостПуть
Платформа Google Mapsgapi.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
REST-сервисы Bing Mapsbing.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 или 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)

Ошибки

400 invalid_request, если не задана ни точка, ни locations, если координата вне допустимого диапазона или имеет неверный формат, если точек больше 100 или если samples, rows или cols дали бы больше 100. 503 backend_unavailable, если сервис высот не отвечает; ничего не засчитывается.