python四种出行路线规划的实现

作者:Python研究者 时间:2022-10-01 18:46:09 

目录
  • 一、简介

    • 思路

    • 高德地图API

  • 二、获取经纬度

    • 三、路线规划(四种方式)

      • 获取出行路线

      • 数据处理

    • 四、演示效果

      • 五、结尾

        一、简介

        路径规划中包括步行、公交、驾车、骑行等不同方式,今天借助高德地图web服务api,实现出行路线规划。

        思路

        • 根据地点获取经纬度

        • 根据经纬度调用api获取路线

        • 对路线数据进行处理,便于浏览

        高德地图API

        对应链接
        https://lbs.amap.com/api/webservice/guide/api/direction

        去高德地图的开放平台注册一个账号,并且创建自己的项目,系统会分配给你一个 key 值。

        python四种出行路线规划的实现

        在开发支持中选择 web服务,选中 web服务api

        python四种出行路线规划的实现

        二、获取经纬度

        输入地点、输出经纬度


        def get_location_x_y(place):
           #place = input("请输入您要查询的地址")
           url = 'https://restapi.amap.com/v3/geocode/geo?parameters'
           parameters = {
               'key':'高德官网获取key',
               'address':'%s' % place
           }
           page_resource = requests.get(url,params=parameters)
           text = page_resource.text       #获得数据是json格式
           data = json.loads(text)         #把数据变成字典格式
           location = data["geocodes"][0]['location']
           return location

        if __name__ == '__main__':
           print(get_location_x_y("北京西站"))

        获取结果

        python四种出行路线规划的实现

        三、路线规划(四种方式)

        获取起点、终点经纬度、出行方式


        from_place = input("请输入起始地址")
        from_location = get_location_x_y(from_place)
        to_place = input("请输入目的地")
        to_location = get_location_x_y(to_place)
        type = input("出行方式(1.公交、2.步行、3.驾车、4.骑行),请输入数字")

        获取出行路线

        type是出行方式(四种方式对应1、2、3、4)
        不同的出行方式,高德地图web服务api链接也不同


        url="https://restapi.amap.com"
        if type=="1":
           url = url+ "/v3/direction/transit/integrated"
        elif type=="2":
           url = url + "/v3/direction/walking"
        elif type=="3":
           url = url + "/v3/direction/driving"
        elif type == "4":
           url = url + "/v4/direction/bicycling"

        请求参数


        parameters = {
           'key': '高德官网获取key',
           'origin': str(from_location),
           'destination': str(to_location),
           'extensions':'all',
           'output':'json',
           'city':'020',
        }

        参数中from_location是起点经纬度,to_location是终点经纬度,output是数据返回的格式,这里返回json(官网还给了很多种格式,比如xml等)

        数据处理


        if type=="1":
           txt = txt['route']['transits']
           for i in txt:
               i = i['segments'][0]['bus']['buslines'][0]['name']
               print(i)
        elif type=="2":
           txt = txt['route']['paths'][0]['steps']
           for i in txt:
               i = i['instruction']
               print(i)
        elif type=="3":
           txt = txt['route']['paths'][0]['steps']
           for i in txt:
               i = i['instruction']
               print(i)
        elif type == "4":
           txt = txt['data']['paths'][0]['steps']
           for i in txt:
               i = i['instruction']
               print(i)

        根据不同的出行方式,获取的数据key不一样,所以需要对应的去处理,便于浏览。

        四、演示效果

        1、公交

        python四种出行路线规划的实现

        2、步行

        python四种出行路线规划的实现

        3、驾车

        python四种出行路线规划的实现

        4、骑行

        python四种出行路线规划的实现

        五、结尾

        OK,以上就是python通过借助高德地图web服务实现不同出行方式的路线规划。

        来源:https://juejin.cn/post/6976520671786434597

        标签:python,路线规划
        0
        投稿

        猜你喜欢

      • python要安装在哪个盘

        2022-10-09 13:16:52
      • 数学公式“四又二分之一”

        2009-01-14 20:03:00
      • Oracle逗号分隔列转行实现方法

        2011-01-04 20:13:00
      • C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)

        2024-01-23 01:06:29
      • MySQL基础之MySQL 5.7 新增配置

        2024-01-15 08:19:02
      • python 3利用Dlib 19.7实现摄像头人脸检测特征点标定

        2022-07-31 05:54:21
      • python中函数默认值使用注意点详解

        2021-01-26 12:36:44
      • Python实现命令行通讯录实例教程

        2023-10-18 01:51:28
      • Python实现GUI学生管理系统的示例代码

        2022-06-01 01:47:56
      • 在JS循环中使用async/await的方法

        2024-05-02 16:19:14
      • sqlserver数据库导入方法的详细图文教程

        2024-01-15 16:52:24
      • python中文件操作与异常的处理图文详解

        2021-09-04 16:04:33
      • Python一行代码实现生成和读取二维码

        2023-04-30 15:31:18
      • django项目简单调取百度翻译接口的方法

        2023-10-20 18:25:41
      • Python动态规划实现虚拟机部署的算法思想

        2022-12-13 05:02:47
      • Vue中正确使用jQuery的方法

        2023-07-02 17:07:45
      • 客户端数据存储–超越cookies

        2008-01-15 13:01:00
      • Python 变量类型详解

        2022-06-23 00:44:55
      • MySQL实现分页查询的方法

        2024-01-17 13:52:32
      • pytorch实现Tensor变量之间的转换

        2023-06-28 15:41:31
      • asp之家 网络编程 m.aspxhome.com