Consulta de elevación
Metros sobre el nivel medio del mar para uno o varios puntos.
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
lat, lonobligatorio* | number | Un único punto. |
locationsobligatorio* | string | *Alternativa a lat y lon: hasta 100 puntos como lat,lon|lat,lon|.... Cada punto cuenta como una solicitud. |
keyopcional | string | Clave 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"]){
"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
| Campo | Tipo | Descripción |
|---|---|---|
results | array | Una entrada por punto, en el orden de entrada. |
results[].elevation_m | number o null | Metros 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_m | number | Espaciado de la cuadrícula del conjunto de datos en metros: 463.8 (15 segundos de arco). |
Notas
- Los valores proceden de la celda más cercana de una cuadrícula de 15 segundos de arco (unos 460 m), global, de tierra y fondo marino. Espera la altura del terreno circundante y no la cota de un punto exacto: sirve para perfiles, cuencas, trayectos de radio y comprobaciones de coherencia, pero es demasiado gruesa para un solo edificio o una cresta estrecha. La precisión vertical suele estar dentro de unos pocos metros en terreno suave y de decenas de metros en montañas escarpadas.
- Sobre masas de agua interiores (lagos, embalses), el valor es la elevación de la superficie.
- La elevación no cambia. Guarda los resultados en caché todo el tiempo que quieras.
- Los formatos de solicitud de Google Elevation, Bing Elevations y Open-Elevation están disponibles en los hosts compatibles.
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.
| Proveedor | Host | Ruta |
|---|---|---|
| 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 o 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) |
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.