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有证书的加密解密实现方法
Nov 19 Python
Python中使用urllib2模块编写爬虫的简单上手示例
Jan 20 Python
python利用正则表达式提取字符串
Dec 08 Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 Python
django加载本地html的方法
May 27 Python
对Python中内置异常层次结构详解
Oct 18 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
利用rest framework搭建Django API过程解析
Aug 31 Python
python Pillow图像处理方法汇总
Oct 16 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
PHP 高手之路(三)
2006/10/09 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
在模板页面的js使用办法
2010/04/01 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
javascript html实现网页版日历代码
2016/03/08 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
JS实现移动端双指缩放和旋转方法
2019/12/13 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
python利用正则表达式提取字符串
2016/12/08 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
3的组成教学反思
2014/04/30 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
民事赔偿协议书
2014/11/02 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
齐云山导游词
2015/02/06 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
经费申请报告范文
2015/05/18 职场文书
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript