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âmetro | Tipo | Descrição |
|---|---|---|
lat, lonobrigatório* | número | Um ú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. |
keyopcional | string | Chave 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
| Campo | Tipo | Descrição |
|---|---|---|
results | array | Uma entrada por ponto, na ordem de entrada. |
results[].elevation_m | número ou null | Metros 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_m | número | Espaçamento da grade do conjunto de dados em metros: 463.8 (15 segundos de arco). |
Observações
- Os valores vêm da célula mais próxima de uma grade de 15 segundos de arco (cerca de 460 m), global, terra e fundo do mar. Espere a altura do terreno ao redor, e não a altura de um ponto exato: serve bem para perfis, bacias hidrográficas, enlaces de rádio e verificações de sanidade, mas é grosseira demais para um único edifício ou uma crista estreita. A precisão vertical costuma ficar dentro de alguns metros em terreno suave e de dezenas de metros em montanhas íngremes.
- Sobre corpos d'água no interior (lagos, reservatórios), o valor é a altitude da superfície.
- A altitude não muda. Armazene os resultados em cache pelo tempo que quiser.
- Os formatos de requisição do Google Elevation, do Bing Elevations e do Open-Elevation estão disponíveis nos hosts compatíveis.
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.
| Provedor | Host | Caminho |
|---|---|---|
| Google Maps Platform | gapi.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 Services | bing.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) |
| MapQuest | mapquest.mygeocode.com | /elevation/v1/profile?latLngCollection=lat,lng,lat,lng&shapeFormat=raw&unit=m |
| Open-Elevation | openelevation.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.