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中is和id的用法
Apr 03 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
Python闭包的两个注意事项(推荐)
Mar 20 Python
Python爬取网页中的图片(搜狗图片)详解
Mar 23 Python
Python贪吃蛇游戏编写代码
Oct 26 Python
Python3计算三角形的面积代码
Dec 18 Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
Django中的ajax请求
Oct 19 Python
python实现旋转和水平翻转的方法
Oct 25 Python
Python 如何提高元组的可读性
Aug 26 Python
基于python实现操作redis及消息队列
Aug 27 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
10条PHP编程习惯助你找工作
2008/09/29 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
javascript 贪吃蛇实现代码
2008/11/22 Javascript
javascript document.referrer 用法
2009/04/30 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
浅谈Python中带_的变量或函数命名
2017/12/04 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
python文件及目录操作代码汇总
2020/07/08 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
经济学人订阅:The Economist
2018/07/19 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
大学毕业自我评价
2014/02/02 职场文书
会计岗位描述
2014/02/22 职场文书
升旗仪式主持词
2014/03/19 职场文书
介绍信格式样本
2015/05/05 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
李强为自己工作观后感
2015/06/11 职场文书
生日寿星公答谢词
2015/09/29 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL