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实现拉钩网上的FizzBuzzWhizz问题示例
May 05 Python
使用Python获取Linux系统的各种信息
Jul 10 Python
Python操作SQLite简明教程
Jul 10 Python
Python内置函数dir详解
Apr 14 Python
详解python中executemany和序列的使用方法
Aug 12 Python
python计算日期之间的放假日期
Jun 05 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
python tkinter控件布局项目实例
Nov 04 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
python 对图片进行简单的处理
Jun 23 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
B2K与车机的中波PK
2021/03/02 无线电
PHP大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
在PHP中使用redis
2013/11/04 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
JavaScript中的闭包原理分析
2010/03/08 Javascript
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
使用requests库制作Python爬虫
2018/03/25 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
使用npy转image图像并保存的实例
2020/07/01 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
大学生毕业自我鉴定范文
2013/11/03 职场文书
机电一体化职业规划书
2014/01/07 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
法人委托书范本格式
2014/09/15 职场文书
Python基础之数据结构详解
2021/04/28 Python
MySQL慢查询优化解决问题
2022/03/17 MySQL