Consulta de elevación

Metros sobre el nivel medio del mar para uno o varios puntos.

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

Parámetros

ParámetroTipoDescripción
lat, lonobligatorio*numberUn único punto.
locationsobligatorio*string*Alternativa a lat y lon: hasta 100 puntos como lat,lon|lat,lon|.... Cada punto cuenta como una solicitud.
keyopcionalstringClave de API, si no se envía como cabecera.

El endpoint también acepta POST con un cuerpo JSON {"locations": [[lat, lon], ...]} para listas largas que no cabrían en una URL.

Ejemplo

$ 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"])
Respuesta
{
  "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 de la respuesta

CampoTipoDescripción
resultsarrayUna entrada por punto, en el orden de entrada.
results[].elevation_mnumber o nullMetros sobre el nivel medio del mar, con un decimal. Negativo por debajo del nivel del mar, incluido el fondo marino en mar abierto (el conjunto de datos incluye batimetría). null solo donde el conjunto de datos no tiene valor.
results[].resolution_mnumberEspaciado de la cuadrícula del conjunto de datos en metros: 463.8 (15 segundos de arco).

Notas

La misma consulta en los formatos de otros proveedores

Si ya tienes código escrito para uno de estos proveedores, consérvalo: el host compatible acepta la misma ruta y los mismos parámetros y responde con la estructura de respuesta de ese proveedor, con este endpoint detrás. Consulta cómo funcionan los hosts compatibles.

ProveedorHostRuta
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 o 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)

Errores

400 invalid_request cuando no se indica ni un punto ni locations, cuando una coordenada está fuera de rango o mal formada, cuando hay más de 100 puntos, o cuando samples, rows o cols producirían más de 100. 503 backend_unavailable cuando el servicio de elevación no responde; no se contabiliza nada.