【Python】利用百度地图API获取多方式行程时间

笔者使用的是百度地图“Web服务API”提供的路径规划功能,官方网站地址如下:
http://lbsyun.baidu.com/index.php?title=webapi

预期效果

批量输入两点经纬坐标返回多种交通方式的当前时刻预计行程时间
(若基础数据为文字地址,可使用百度地图API提供的“正/逆地理编码服务”转换为经纬坐标数据)

获取秘钥

秘钥是访问百度地图API各项功能的密码,需向百度地图申请获得
在这里插入图片描述
点击网址,登录百度账号,点击获取秘钥,即可进入控制台界面
我们需要以开发应用的名义申请秘钥,因此在应用管理的我的应用中点击创建应用
简单输入必要信息提交后稍等便可通过验证
返回控制台即可获得所申请应用的AK码即秘钥
在这里插入图片描述

路线规划

点击网址中的路线规划分区进入路线规划服务界面
在这里插入图片描述
百度标明了请求格式,以及返回格式

以返回参数相对复杂的公交路径规划为例

请求格式

请求格式中不可或缺的部分是API地址+起终点经纬度+AK秘钥(各要素间通过&连接)
还有许多选填参数,如输入输出坐标类型(火星坐标/百度坐标/GPS坐标)、出行者选择路径的策略
值得一提的是在公交路径规划中是可以通过控制“公交换乘策略”是否使用地铁这一变量分别获得仅公交车出行和综合使用公共交通两种状态下的行程时间的
这在需要分别获得公交车以及地铁出行数据并加以对比时十分方便

由于唯一的变量为起终点经纬度,因此可以将请求代码整合为一个函数,方便调用:

def stod(slat,slng,dlat,dlng):#输入:起点纬度、起点经度、终点纬度、终点经度
    url ="http://api.map.baidu.com/direction/v2/transit?" #API地址
    ak = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' #秘钥
    real_url = url +"origin="+slat+","+slng+"&destination="+dlat+","+dlng+"&ak="+ak #完整的请求代码
    req = requests.get(real_url)
    t = req.text
    data = json.loads(t) #将数据保存在数组data中
    try:#防止某几条数据报错导致请求终止
        total_duration = data['result']["routes"][0]["duration"]/60
        stepstr = str(total_duration) #获取该条数据总行程时间
        steps = data['result']["routes"][0]['steps'] #获取该条路径的所有步骤
        for step in steps:
            step_tructions = step[0]["instructions"]#每一步的介绍包括乘坐公交车或地铁线路名
            step_duration 
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值