python requests调用高德接口获取距离时间

     在涉及路径计算等相关问题的时候经常需要知道两个点之间的距离和时间,这个时候可以通过调用高德的路径规划接口来获取相关数据,具体可参考如下。相关key可自行到高德开放平台申请:https://lbs.amap.com/ ,以下以驾车距离时间为例,不同出行方案有不同的接口,比如:货车、步行、骑行等等,具体可参考上述主页。

代码如下:

#高德地图驾车路径规划,获取两地点之间的驾车里程和时间
import pandas as pd
import requests
import json

def get_dis_tm(origin, destination):
    url = 'https://restapi.amap.com/v3/direction/driving?'
    key = 'XXXXXXXXXXXXXXX' #这里就是需要
    link = '{}origin={}&destination={}&key={}'.format(url, origin ,destination , key)
    response = requests.get(link)
    dis, tm = 999999, 999999
    if response.status_code == 200:
        results = response.json()
        if results['status'] == '1':
            dis = int(results['route']['paths'][0]['distance'])
            tm = int(results['route']['paths'][0]['duration'])
        else:
            print(link)
    return dis, tm

测试:北京到上海的驾车距离时间

#北京和上海的经纬度
beijing = '114.049085,22.556316'
shanghai = '121.473658,31.230378'
get_dis_tm(beijing,shanghai)
输出结果为:(1434242, 63256)

涉及到批量调用的可以写个循环,但是每天都调用次数限制,学习愉快~

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,你需要注册高德地图开发者账号,并获取到相应的 API key。然后,你可以使用 Pythonrequests 库来向高德 API 发送请求,并获取到返回的 JSON 数据。 以下是一个示例代码,可以解析 GPS 轨迹并绘制在地图上: ```python import requests import json import folium # 高德 API 接口 url = 'https://restapi.amap.com/v3/assistant/coordinate/convert' # 高德 API key key = 'your_api_key' # GPS 轨迹数据 gps_data = [ [116.397477, 39.908692], [116.3979, 39.908692], [116.398327, 39.908692], [116.398755, 39.908692], [116.399182, 39.908692], [116.39961, 39.908692], [116.400037, 39.908692], [116.400465, 39.908692], [116.400893, 39.908692], [116.40132, 39.908692] ] # 将 GPS 坐标转换为高德坐标 amap_data = [] for lng, lat in gps_data: params = {'locations': f'{lng},{lat}', 'coordsys': 'gps', 'key': key} response = requests.get(url, params=params) result = json.loads(response.text) amap_longitude, amap_latitude = result['locations'].split(',') amap_data.append([float(amap_longitude), float(amap_latitude)]) # 创建地图 map = folium.Map(location=[amap_data[0][1], amap_data[0][0]], zoom_start=15) # 绘制轨迹 folium.PolyLine(amap_data, color='red').add_to(map) # 显示地图 map.save('map.html') ``` 在上述代码中,我们使用 folium 库创建了一个地图,并使用 PolyLine 方法绘制了 GPS 轨迹。我们也使用了 requests 库向高德 API 发送了请求,并使用 json 库解析了返回的 JSON 数据。最后,我们将绘制好的地图保存到了本地文件中。 请注意,由于高德 API 有调用次数限制,所以在实际应用中请务必按照高德地图开发者文档的要求进行接口调用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值