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中copy()方法的使用
May 21 Python
在Python的while循环中使用else以及循环嵌套的用法
Oct 14 Python
Python简单实现查找一个字符串中最长不重复子串的方法
Mar 26 Python
深入浅析python with语句简介
Apr 11 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
python不同系统中打开方法
Jun 23 Python
opencv 图像轮廓的实现示例
Jul 08 Python
详解基于python的图像Gabor变换及特征提取
Oct 26 Python
Django migrate报错的解决方案
May 20 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
谈一谈收音机的高放电路
2021/03/02 无线电
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
Python 第一步 hello world
2009/09/25 Python
python list使用示例 list中找连续的数字
2014/01/27 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python读写zip压缩文件的方法
2018/08/29 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
python语言中有算法吗
2020/06/16 Python
详解python中的lambda与sorted函数
2020/09/04 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
365 Tickets英国:全球景点门票
2019/07/06 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
学校经典推荐信
2013/10/30 职场文书
物流司机岗位职责
2013/12/28 职场文书
业绩考核岗位职责
2014/02/01 职场文书
2014年生产部工作总结
2014/12/17 职场文书
安全生产先进个人总结
2015/02/15 职场文书
《鲸》教学反思
2016/02/23 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis