Consulta de altitude

Metros acima do nível médio do mar para um ou vários pontos.

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

Parâmetros

ParâmetroTipoDescrição
lat, lonobrigatório*númeroUm único ponto.
locationsobrigatório*string*Alternativa a lat e lon: até 100 pontos no formato lat,lon|lat,lon|.... Cada ponto conta como uma requisição.
keyopcionalstringChave de API, se não for enviada como cabeçalho.

O endpoint também aceita POST com um corpo JSON {"locations": [[lat, lon], ...]} para listas longas que não caberiam numa URL.

Exemplo

$ 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"])
Resposta
{
  "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 }
  ]
}

Campos da resposta

CampoTipoDescrição
resultsarrayUma entrada por ponto, na ordem de entrada.
results[].elevation_mnúmero ou nullMetros acima do nível médio do mar, com uma casa decimal. Negativo abaixo do nível do mar, incluindo o fundo do mar em oceano aberto (o conjunto de dados inclui batimetria). null apenas onde o conjunto de dados não tem valor.
results[].resolution_mnúmeroEspaçamento da grade do conjunto de dados em metros: 463.8 (15 segundos de arco).

Observações

A mesma consulta nos formatos de outros provedores

Se você já tem código escrito para um desses provedores, mantenha-o: o host compatível aceita o mesmo caminho e os mesmos parâmetros e responde no formato de resposta desse provedor, com este endpoint por trás. Veja como funcionam os hosts compatíveis.

ProvedorHostCaminho
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 ou 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)

Erros

400 invalid_request quando não é informado nem um ponto nem locations, quando uma coordenada está fora do intervalo ou malformada, quando há mais de 100 pontos, ou quando samples, rows ou cols produziriam mais de 100. 503 backend_unavailable quando o serviço de altitude não responde; nada é contado.