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 相关文章推荐
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
Django框架中render_to_response()函数的使用方法
Jul 16 Python
动感网页相册 python编写简单文件夹内图片浏览工具
Aug 17 Python
详解Python各大聊天系统的屏蔽脏话功能原理
Dec 01 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
Python 文件数据读写的具体实现
Jan 24 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
May 26 Python
python实现ping命令小程序
Dec 28 Python
浅谈Python中对象是如何被调用的
Apr 06 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
Terran魔法科技
2020/03/14 星际争霸
PHP如何抛出异常处理错误
2011/03/02 PHP
WAF的正确bypass
2017/01/05 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
Vue动态加载图片在跨域时无法显示的问题及解决方法
2020/03/10 Javascript
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
Python中操作符重载用法分析
2016/04/29 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
关于Python-faker的函数效果一览
2019/11/28 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
详解python对象之间的交互
2020/09/29 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
护理专业自荐信范文
2014/02/26 职场文书