当前位置:   article > 正文

Python 全栈系列106 -调用百度地图api计算两点间距离和行车时间_百度api查2点之间的推荐路线距离

百度api查2点之间的推荐路线距离

说明

百度地图的api还是蛮大方的,反正个人是肯定够用的。没想到还有天气接口,以后也可以玩一玩。本篇实现计算两个地址间的距离。
在这里插入图片描述

内容

1 地址转为经纬度

使用这个接口进行地址转换坐标。
在这里插入图片描述
第一次提交报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":"飞机场"}})'
  • 1
  • 2
  • 3
  • 4
  • 5

对应输出的字段如下
在这里插入图片描述
为了更容易解析内容(后端用),稍微修改请求的url, 这样直接用resp.json()就能得到字典了。

http://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10&output=json&ak=您的ak【&callback=showLocation 这部分删掉】 //GET请求
  • 1

2 计算两个点之间的距离

其实有个两点经纬度,直接套用球面距离就能算出来。我想要的是驾车路线。

  • 驾车路线规划
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,
...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在这里插入图片描述

里面的路径和时间是我现在关心的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/407825
推荐阅读
相关标签
  

闽ICP备14008679号