没有合适的资源?快使用搜索试试~ 我知道了~
首页【Python】利用百度地图API获取多方式行程时间
笔者使用的是百度地图“Web服务API”提供的路径规划功能,官方网站地址如下: http://lbsyun.baidu.com/index.php?title=webapi 预期效果 批量输入两点经纬坐标返回多种交通方式的当前时刻预计行程时间 (若基础数据为文字地址,可使用百度地图API提供的“正/逆地理编码服务”转换为经纬坐标数据) 获取秘钥 秘钥是访问百度地图API各项功能的密码,需向百度地图申请获得 点击网址,登录百度账号,点击获取秘钥,即可进入控制台界面 我们需要以开发应用的名义申请秘钥,因此在应用管理的我的应用中点击创建应用 简单输入必要信息提交后稍等便可通过验证 返回控制台即可获
资源详情
资源评论
资源推荐

【【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 = step[0]["duration"]#每一步所花费的时间
stepstr = stepstr+"/"+step_tructions+"/"+str(step_duration/60)
except:
stepstr = None
req.close()
return stepstr #返回数据为总时长/第一步/第一步耗时/第二步/第二步耗时/...
全方式整合版全方式整合版
由于计算每种出行方式出行时耗都要单独编写一个函数,不够简洁,笔者将公共交通、小汽车、电动车、自行车、步行五种出行方式整合为一个Class(类)方便后续在其他py文件
中直接调用。













安全验证
文档复制为VIP权益,开通VIP直接复制

评论0