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基于xmlrpc实现二进制文件传输的方法
Jun 02 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
python找出因数与质因数的方法
Jul 25 Python
python实现猜数字游戏
Mar 25 Python
详解python中*号的用法
Oct 21 Python
python 实现简单的FTP程序
Dec 27 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
tensorflow 重置/清除计算图的实现
Jan 19 Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 Python
Python3中对json格式数据的分析处理
Jan 28 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
如何使用PHP中的字符串函数
2006/11/24 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
理解JavaScript中的事件
2006/09/23 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
python实现用户登录系统
2016/05/21 Python
Python代码实现KNN算法
2017/12/20 Python
python 美化输出信息的实例
2018/10/15 Python
python根据时间获取周数代码实例
2019/09/30 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
大学生村官任职感言
2014/01/09 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
主要领导对照检查材料
2014/08/26 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
公司回复函格式
2015/07/14 职场文书
标枪加油稿
2015/07/22 职场文书
2016中秋节广告语
2016/01/28 职场文书
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python