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迭代器和生成器介绍
Mar 06 Python
面向初学者的Python编辑器Mu
Oct 08 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
Sep 20 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
python实现查找所有程序的安装信息
Feb 18 Python
Python request使用方法及问题总结
Apr 26 Python
Selenium元素定位的30种方式(史上最全)
May 11 Python
selenium如何定位span元素的实现
Jan 13 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
如何给phpadmin一个保护
2006/10/09 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
python实现从字典中删除元素的方法
2015/05/04 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
python五子棋游戏的设计与实现
2019/06/18 Python
python 怎样进行内存管理
2020/11/10 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
简历中的自我评价怎么写
2014/01/29 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
西柏坡导游词
2015/02/05 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
JavaScript原型链详解
2021/11/07 Javascript
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技
MySQL自定义函数及触发器
2022/08/05 MySQL