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之dict()的操作方法
Sep 24 Python
Python列表list数组array用法实例解析
Oct 28 Python
python计算方程式根的方法
May 07 Python
网站渗透常用Python小脚本查询同ip网站
May 08 Python
Python定时器实例代码
Nov 01 Python
Python实现的求解最小公倍数算法示例
May 03 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
python绘制彩虹图
Dec 16 Python
python中scipy.stats产生随机数实例讲解
Feb 19 Python
OpenCV-Python实现轮廓的特征值
Jun 09 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
微信自定义分享php代码分析
2016/11/24 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
2015/03/27 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
python中Genarator函数用法分析
2015/04/08 Python
python 字典套字典或列表的示例
2019/12/16 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
在keras中实现查看其训练loss值
2020/06/16 Python
python文件及目录操作代码汇总
2020/07/08 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
艺术专业大学生自我评价
2013/09/22 职场文书
护士节慰问信
2015/02/15 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
第一节英语课开场白
2015/06/01 职场文书
学风建设主题班会
2015/08/17 职场文书
Python+Appium新手教程
2021/04/17 Python
python使用pymysql模块操作MySQL
2021/06/16 Python
vue 给数组添加新对象并赋值
2022/04/20 Vue.js