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


Posted in Python onJune 23, 2021
目录
  • 一、简介
    • 思路
    • 高德地图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服务实现不同出行方式的路线规划。

到此这篇关于python四种出行路线规划的实现 的文章就介绍到这了,更多相关python 出行路线规划 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的函数嵌套的使用方法
Jan 24 Python
Python算法之栈(stack)的实现
Aug 18 Python
在Django中同时使用多个配置文件的方法
Jul 22 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
Python assert关键字原理及实例解析
Dec 13 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
Python通过socketserver处理多个链接
Mar 18 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
Python如何发送与接收大型数组
Aug 07 Python
Python实现上下文管理器的方法
Aug 07 Python
python里glob模块知识点总结
Jan 05 Python
Python带你从浅入深探究Tuple(基础篇)
May 15 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
2010/10/12 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python实现购物程序思路及代码
2017/07/24 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
外贸英语毕业生自荐信
2013/11/14 职场文书
机关财务管理制度
2014/01/17 职场文书
无偿献血倡议书
2014/04/14 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
python 模块重载的五种方法
2021/04/24 Python
Python源码解析之List
2021/05/21 Python
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js