python - python的开放式高程API
问题描述
我们可以在 python中使用open-elevation吗?我尝试使用请求获取 API,但没有工作
#overpass api url
elevation_request = "https://api.open-elevation.com/api/v1/lookup\?locations\=10,10\|20,20\|41.161758,-8.583933"
elevation = requests.get(elevation_request)
data_json = elevation.json()
我们如何将此 API 与 python 集成?
解决方案
端点是有效的,但它们慢很多倍或有时无响应。下面的代码是对此答案的改编,用于处理响应状态代码和超时:
from requests import get
from pandas import json_normalize
def get_elevation(lat = None, long = None):
'''
script for returning elevation in m from lat, long
'''
if lat is None or long is None: return None
query = ('https://api.open-elevation.com/api/v1/lookup'
f'?locations={_lat},{_long}')
# Request with a timeout for slow responses
r = get(query, timeout = 20)
# Only get the json response in case of 200 or 201
if r.status_code == 200 or r.status_code == 201:
elevation = json_normalize(r.json(), 'results')['elevation'].values[0]
else:
elevation = None
return elevation
推荐阅读
- xaml - 我们可以在 app.xaml 以外的其他地方为 xamarin 表单控件模板定义资源吗
- c# - C#在没有管理员权限的情况下创建用户ODBC
- c# - 如何在excel中将纹理填充类型设置为“堆栈”?
- reactjs - 收音机,无法读取 null 的属性“focusVisible”
- javascript - 我可以获取“req.session”(快速会话)数据吗?
- json - Laravel API 传递给 Vuejs 查询连接嵌套事务和订单 Ttbles
- c++ - -> if (c++) 中的运算符
- docker - 如何从自动化套件运行 Dockerfile 或 docker-compose 文件
- javascript - 获取数组中的最后一个索引号 [JavaScript]
- python - 在 python3 中使用置换循环形成新数组