python获取百度地图路径规划

自制语音助手想做一个查询交通路线的功能,于是就想到了百度地图。在百度地图的服务器端应用中,提供了“轻量级路线规划”API接口,正好可以满足需求。要用这个接口,需要注册百度地图账号并创建一个服务器端的应用。有关开通百度地图服务器端应用的操作,可以参考博文:python调用百度地图api,查询地方的经度纬度,将数据写入excel_python获取当前位置经纬度-CSDN博客

在百度地图开发文档中关于路径规划的示例如下所示。

在ak这里输入自己的api_key后执行,就能看到规划结果了。

请注意:看到红框中的内容了吗?这里需要输入起始地和目的地的经纬度坐标。但我们平时只会输入具体地址,这个经纬度坐标从哪儿获取?这就需要用到百度地图的另一个API接口——地理编码。

在百度地图开发文档中关于地理编码的示例如下所示。

很简单吧?不过有一点需要注意,这里的address必须要写XX市,如果不写则会返回空。

好了,现在知道了路线规划的接口,也知道了地理编码的接口,把它们组合起来,就能做一个自定义的路线规划程序了。如下是我的代码:

import requestsak = ‘您的AK’def local_geocode(address):
‘’‘获取地理编码’’’global akresult = ''index0 = address.find('市')
#地址中是否写了XX市的判断if index0 == -1:address = "上海市"+address
#如果地址中不含XX市,默认加一个‘上海市’url = "https://api.map.baidu.com/geocoding/v3"params = {"address": address,"output": "json","ak": ak,}response = requests.get(url=url, params=params)if response:resp = response.json()if resp['status'] == 0:
#status=0表示接口调用成功,否则就是各种报错了result = (resp['result']['location']['lng'], resp['result']['location']['lat'])return resultdef route_plan(loc1, loc2, type='transit'):
‘’‘获取规划路线,默认公交路线规划’’’global ak
origin_url = "https://api.map.baidu.com/directionlite/v1/"url = origin_url + type#拼接不同的type,调用不同的路线规划接口,分别是driving,transit,riding,walking
orign = str(loc1[1]) + ',' + str(loc1[0])destination = str(loc2[1]) + ',' + str(loc2[0])
#地理编码获取的经纬度信息,放到路线规划中需要把位置换一换params = {"origin":  orign,"destination":  destination,"ak": ak,}response = requests.get(url=url, params=params)if response:resp = response.json()print(resp)if resp['status'] == 0:
#status=0表示接口调用成功,否则就是各种报错了distance = resp['result']['routes'][0]['distance']
#起点到终点的距离,单位是米duration = resp['result']['routes'][0]['duration']
#起点到终点的耗时,单位是秒data = resp['result']['routes'][0]['steps']
#具体规划路径的key是stepsfor step in data:print(step)addr1 = input('输入初始地址:')
loc1 = local_geocode(addr1)
addr2 = input('输入目的地:')
loc2 = local_geocode(addr2)
route_plan(loc1, loc2)

执行上面程序,可以得到如下的结果。

如果把transit改成其他三种方式,得到的response数据格式会有些不同,如下图,设计代码的时候需要注意。

好了,这就是完整的python获取百度地图路径规划的代码了。喜欢的话请给我一个赞吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/434867.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docekrfile和docker compose编写指南及注意事项

Dockerfile 基础语法 我们通过编写dockerfile,将每一层要做的事情使用语法固定下来,之后运行指令就可以通过docker来制作自己的镜像了。 构建镜像的指令:docker build /path -t imageName:tag 注意,docker build后的path必须是dockerfile…

Selenium与数据库结合:数据爬取与存储的技术实践

目录 一、Selenium与数据库结合的基础概念 1.1 Selenium简介 1.2 数据库简介 1.3 Selenium与数据库结合的优势 二、Selenium爬取数据的基本步骤 2.1 环境准备 2.2 编写爬虫代码 2.3 数据提取 2.4 异常处理 三、数据存储到数据库 3.1 数据库连接 3.2 数据存储 3.3 …

网络编程(10)——json序列化

十、day10 今天学习如何使用jsoncpp将json数据解析为c对象,将c对象序列化为json数据。jsoncp经常在网络通信中使用,也就是服务器和客户端的通信一般使用json(可视化好);而protobuf一般在服务器之间的通信中使用 json…

【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差

本文内容来自YashanDB官网,具体内容请见https://www.yashandb.com/newsinfo/7396959.html?templateId1718516 问题现象 yashandb执行带oracle dblink表的sql性能差: 同样的语句,同样的数据,oracle通过dblink访问远端oracle执行…

可视化服务编排:jvs-logic API出参加密实战教程

在现代软件开发与系统集成的过程中,API(应用程序接口)非常重要,它能使不同系统之间连接,进行数据交换和功能调用。当然,数据交换的数据安全肯定是不可忽视的,为了确保数据在传输过程中的保密性和…

虫情测报灯的工作原理

TH-CQ3】果园、森林等区域病虫害的实时监测、预警和科学管理。病虫害监测系统通常由以下几个部分组成:包括图像传感器、声音传感器、气象传感器等,用于实时采集作物及其周围环境的数据,如叶片变化、虫鸣声、温度、湿度、光照等。对采集到的数…

基于RealSense D435相机实现手部姿态重定向

基于Intel RealSense D435相机和MediaPipe的手部姿态检测,进一步简单实现手部姿态与机器人末端的重定向,获取手部的6D坐标(包括位置和姿态)。 假设已经按照【基于 RealSenseD435i相机实现手部姿态检测】配置好所需的库和环境&…

海口网站建设的最佳实践

海口网站建设的最佳实践 随着互联网的迅猛发展,海口的企业和个人越来越重视网站建设。一个高质量的网站不仅能提升企业形象,还能有效促进品牌传播和业务发展。以下是海口网站建设的一些最佳实践,希望能为相关从业者提供帮助。 1. 明确目标和…

一文说清楚:如何学习好K8s、OpenStack、Docker、Linux?

大家好,我是你们熟悉的-CloudJourney。在这个信息爆炸的时代,我一直致力于通过博客、公众号等平台,与大家分享关于Linux、K8S、Docker、网络、服务器以及OpenStack等前沿技术的见解与心得。然而,随着交流的深入,我逐渐…

[论文精读]TorWard: Discovery, Blocking, and Traceback of Malicious Traffic Over Tor

期刊名称:IEEE Transactions on Information Forensics and Security 发布链接:TorWard: Discovery, Blocking, and Traceback of Malicious Traffic Over Tor | IEEE Journals & Magazine | IEEE Xplore 中文译名:TorWard:…

EDM平台大比拼 用户体验与营销效果双重测评

本文评测了ZohoCampaigns、Mailchimp、Sendinblue、AWeber四款EDM平台,分别适合中小企业、多平台集成、多功能集成、初学者等需求。建议企业根据自身规模、技术水平和功能需求选择最适合的平台。 一、Zoho Campaigns 功能概述 Zoho Campaigns是Zoho旗下的一款专注…

前端框架:选择的艺术

一、简介 在现代 web 开发中,前端框架扮演着至关重要的角色。 首先,它们极大地提升了开发效率。以 React、Vue 和 Angular 为例,这些框架采用组件化的开发模式,允许开发者将页面拆分成独立的、可复用的组件。例如,在一…

学校周赛(2)

A.Minimize! 题目 思路 本题只需要遍历c的取值&#xff0c;实时更新答案即可 代码 #include<iostream> #include<algorithm> using namespace std;void todo(){int a,b;cin>>a>>b;int ansINT_MAX;for(int ca;c<b;c){ansmin(ans,(c-a)(b-c));}co…

面试题:MySQL你用过WITH吗?领免费激活码

感谢Java面试教程的Java多线程文章&#xff0c;点击查看>原文 Java面试教程&#xff0c;发mmm116可获取IDEA-jihuoma 在MySQL中&#xff0c;WITH子句用于定义临时表或视图&#xff0c;也称为公共表表达式&#xff08;CTE&#xff09;。它允许你在一个查询中定义一个临时结果…

耳机检测系统源码分享

耳机检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

spring-boot 整合 mybatis

文章目录 Spring boot 整合Mybatis将数据返回到浏览器1、准备数据2. 创建一个 pojo 包&#xff0c;创建User实体类3. 创建一个mapper包&#xff0c;写一个UserMapper接口4. 创建一个service包&#xff0c;写一个UserService接口。5. 在 Service 包下创建一个子包&#xff0c;im…

CSS 的背景样式

1.1 背景颜色 1.2 背景图片 1.3 背景平铺 1.4 背景图片位置 1.4.1 方位名词 1.4.2 精确单位 1.4.3 混合单位 1.5 背景图像固定 1.6 背景复合写法 1.7 背景色半透明 1.8 总结

SpringCloud-07 GateWay01 网关技术

Spring Cloud Gateway组件的核心是一系列的过滤器&#xff0c;通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway是加在整个微服务最前沿的防火墙和代理器&#xff0c;隐藏微服务结点IP端口信息&#xff0c;从而加强安全保护。Spring Clou…

Flink 结合kafka 实现端到端的一致性原理

Kafka 事务实现原理 Flink checkpoint 结合kafka 实现端到端的一致性 CASE 分析 1.checkpoint 不成功情况会发生啥&#xff1f; checkpoint 不成功&#xff0c;事务就不会提交&#xff0c;如果checkpoint 一直不成功&#xff0c;任务重启或失败&#xff0c;则会终止事务。从整…

DriveVLM 论文学习

论文链接&#xff1a;https://arxiv.org/abs/2402.12289 解决了什么问题&#xff1f; 自动驾驶对交通行业有着革命性的作用&#xff0c;实现 FSD 的一个主要障碍就是场景理解。场景理解涉及在复杂且不可预测的环境中进行导航&#xff0c;这些环境可能包括恶劣的天气条件、复杂…