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中实现定制类的特殊方法总结
Sep 28 Python
在Python中操作字典之update()方法的使用
May 22 Python
Python微信库:itchat的用法详解
Aug 14 Python
python多线程socket编程之多客户端接入
Sep 12 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
浅谈Python数学建模之线性规划
Jun 23 #Python
教你如何用Python实现人脸识别(含源代码)
python 对图片进行简单的处理
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
浅析Python中的套接字编程
Python中使用ipython的详细教程
详解Python类和对象内容
You might like
图书管理程序(一)
2006/10/09 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
php生成静态页面的简单示例
2014/04/17 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
基于vue实现分页效果
2017/11/06 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
应届生体育教师自荐信
2013/10/03 职场文书
班组长的岗位职责
2013/12/09 职场文书
大学毕业感言一句话
2014/02/06 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
课外活动总结范文
2014/07/09 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
Python requests用法和django后台处理详解
2022/03/19 Python
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android
Android studio 简单计算器的编写
2022/05/20 Java/Android