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中的推导式使用详解
Jun 03 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
python绘制简单彩虹图
Nov 19 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
Python生成词云的实现代码
Jan 14 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
python 5个顶级异步框架推荐
Sep 09 Python
基于python实现坦克大战游戏
Oct 27 Python
Python实现石头剪刀布游戏
Jan 20 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
php计算数组不为空元素个数的方法
2014/01/27 PHP
php实现文件下载实例分享
2014/06/02 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
vue实现输入框自动跳转功能
2020/05/20 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
Python Celery多队列配置代码实例
2019/11/22 Python
python多维数组分位数的求取方式
2020/03/03 Python
Python中私有属性的定义方式
2020/03/05 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
存储过程和函数的区别
2013/05/28 面试题
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
高中自我评价分享
2013/12/05 职场文书
简历中的自我评价范文
2014/02/05 职场文书
员工安全责任书范本
2014/07/24 职场文书
工作服管理制度范本
2015/08/06 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
python实现学生信息管理系统(面向对象)
2022/06/05 Python