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中文件操作简明介绍
Apr 13 Python
用Python中的字典来处理索引统计的方法
May 05 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
python与字符编码问题
May 24 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 Python
详解pandas apply 并行处理的几种方法
Feb 24 Python
详解Python openpyxl库的基本应用
Feb 26 Python
python实现黄金分割法的示例代码
Apr 28 Python
Python 如何实现文件自动去重
Jun 02 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
点评山进PR-D3L三波段收音机
2021/03/02 无线电
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
深入理解Javascript闭包 新手版
2010/12/28 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
javascript 表格内容排序 简单操作示例代码
2014/01/03 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
js图片上传的封装代码
2017/08/01 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
前端开发之便利店收银系统代码
2019/12/27 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
python中 logging的使用详解
2017/10/25 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
老教师工作总结的自我评价
2013/09/27 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
食品采购员岗位职责
2014/04/14 职场文书
社区工作者演讲稿
2014/05/23 职场文书
公务员诚信承诺书
2014/05/26 职场文书