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 相关文章推荐
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
python实现给微信公众号发送消息的方法
Jun 30 Python
python 字符串和整数的转换方法
Jun 25 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
Python装饰器用法实例分析
Jan 14 Python
python按照多个条件排序的方法
Feb 08 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
python二维图制作的实例代码
Dec 03 Python
Python预测分词的实现
Jun 18 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
PHP执行速率优化技巧小结
2008/03/15 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
jquery remove方法应用详解
2012/11/22 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
Position属性之relative用法
2015/12/14 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
Python3访问并下载网页内容的方法
2015/07/28 Python
全面了解python中的类,对象,方法,属性
2016/09/11 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
python3爬虫之设计签名小程序
2018/06/19 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
汉语言文学毕业生求职信
2013/10/01 职场文书
运动会解说词100字
2014/01/31 职场文书
党校毕业心得体会
2014/09/13 职场文书
世界遗产的导游词
2015/02/13 职场文书
个人年终总结怎么写
2015/03/09 职场文书
党内外群众意见范文
2015/06/02 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
高二化学教学反思
2016/02/22 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js