海拔查询
一个或多个点的平均海平面以上高度(米)。
GEThttps://api.mygeocode.com/v1/elevation
参数
| 参数 | 类型 | 说明 |
|---|---|---|
lat, lon必填* | 数字 | 单个点。 |
locations必填* | 字符串 | *lat 和 lon 的替代方式:最多 100 个点,格式为 lat,lon|lat,lon|...。每个点计为一次请求。 |
key可选 | 字符串 | API 密钥(如果未通过请求头发送)。 |
对于 URL 放不下的长列表,该端点还接受 POST 请求,JSON 正文为 {"locations": [[lat, lon], ...]}。
示例
$ 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 弧秒)。 |
注意事项
- 数值取自 15 弧秒网格(约 460 米)中最近的单元格,覆盖全球的陆地和海底。得到的是周围地形的高度,而不是某个精确点的高程:适用于剖面、汇水区、无线电路径和合理性检查,但对于单栋建筑或狭窄山脊来说过于粗略。在平缓地形上垂直精度通常在几米以内,在陡峭山区则为几十米。
- 在内陆水体(湖泊、水库)上,数值为水面高程。
- 海拔不会改变。结果可以随意缓存多久都行。
- 兼容替换主机上提供 Google Elevation、Bing Elevations 和 Open-Elevation 请求格式。
以其他服务商格式进行的同一查询
如果您已有针对这些服务商之一编写的代码,请保留它:兼容替换主机接受相同的路径和参数,并以该服务商的响应结构作答,背后由此端点提供支持。请参阅兼容替换主机的工作原理。
| 服务商 | 主机 | 路径 |
|---|---|---|
| Google Maps 平台 | 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 服务 | 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 或 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) |
错误
当既没有提供点也没有提供 locations、坐标超出范围或格式错误、点数超过 100 个,或 samples、rows 或 cols 会产生超过 100 个点时,返回 400 invalid_request。当海拔服务无响应时返回 503 backend_unavailable;不计数。