赞
踩
百度地图的api还是蛮大方的,反正个人是肯定够用的。没想到还有天气接口,以后也可以玩一玩。本篇实现计算两个地址间的距离。
使用这个接口进行地址转换坐标。
第一次提交报APP 服务禁用
,这时候就进入App的设置,我比较怕麻烦,一次全勾上了。
随意输入一个地址
address ='上海浦东国际机场卫星厅'
---
resp = req.get(url_template % (address , ak ))
resp.text
'showLocation&&showLocation({"status":0,"result":{"location":{"lng":121.8150900202384,"lat":31.15747782869679},"precise":0,"confidence":50,"comprehension":57,"level":"飞机场"}})'
对应输出的字段如下
为了更容易解析内容(后端用),稍微修改请求的url, 这样直接用resp.json()就能得到字典了。
http://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak【&callback=showLocation 这部分删掉】 //GET请求
其实有个两点经纬度,直接套用球面距离就能算出来。我想要的是驾车路线。
http://api.map.baidu.com/directionlite/v1/driving?origin=40.01116,116.339303&destination=39.936404,116.452562&ak=您的AK //GET请求 import requests as req url_template1 = 'http://api.map.baidu.com/directionlite/v1/driving?origin=%s,%s&destination=%s,%s&ak=%s' # 输入起始和目标维度,经度,返回包含路径/时间在内的结果 def baidu_distance_between_coord(start_point,end_point, ak = 'YOURAK'): resp = req.get(url_template1 % (*start_point, *end_point , ak )) return resp.json() --- {'status': 0, 'message': 'ok', 'result': {'origin': {'lng': 121.530908, 'lat': 31.234879867016}, 'destination': {'lng': 121.81509, 'lat': 31.157476857729}, 'routes': [{'distance': 40372, 'duration': 2988, 'traffic_condition': 1, 'toll': 0, 'restriction_info': {'status': 0}, 'steps': [{'leg_index': 0, 'distance': 43, 'duration': 2, 'direction': 10, 'turn': 3, ...
里面的路径和时间是我现在关心的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。