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 19 Python
Python面向对象特殊成员
Apr 24 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
python处理两种分隔符的数据集方法
Dec 12 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
python Opencv计算图像相似度过程解析
Dec 03 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
keras中的卷积层&池化层的用法
May 22 Python
python如何从键盘获取输入实例
Jun 18 Python
教你用python控制安卓手机
May 13 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
十天学会php之第一天
2006/10/09 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
心扬JS分页函数代码
2010/09/10 Javascript
jquery attr 设定src中含有&(宏)符号问题的解决方法
2011/07/26 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
python实现文件分组复制到不同目录的例子
2014/06/04 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
python set集合使用方法解析
2019/11/05 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
土木工程毕业生自荐信
2013/09/21 职场文书
餐饮部总监岗位职责范文
2014/02/13 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python