pyqt5 窗口调用网页高德地图kpi,进行实时地图导航

作为主项目功能的一部分,这部分我想单独记录下来

一,注册高德kpi【进行实名认证】

高德开放平台 | 高德地图API (amap.com)

二,申请Key

三,进入路径规划-API文档-开发指南-Web服务 API|高德地图API (amap.com)

 找到你需要的路径规划的文档,我选的是“驾车路径规划”

这一部分也便是获取数据的关键了

对应的代码如下:

首先将官方给的url,进行添加,我加入了,起始地点,终止地点,以及starategy【选择不同的策略】,以及key【刚才申请的key】

def get_route(start, end, mode, amap_key):# 这里的url中选择是步行,公交还是驾车路径,本文中driving?表示驾车,具体介绍见:https://lbs.amap.com/api/webservice/guide/api/directionurl = f'https://restapi.amap.com/v3/direction/driving?origin={start}&destination={end}&strategy={mode}&key={amap_key}'response = requests.get(url)data = response.json()if data['status'] == '1':route = data['route']['paths'][0]['steps']# print(route)time = data['route']['paths'][0]['duration']       # 当前的行驶时间print(time)return routeelse:print('请求失败,请检查输入参数。')return None

 底下获取route路线和time时间的两行代码,写法是:

依次类推,相当于就是先找到这个大类,再去找小类,其次,就是“[0]”,代表的是第一条路径的对应的属性,如果你不想也可以改为[1]......

def exchange_route(route):if route:for i, step in enumerate(route):list_latlon.append(step["polyline"])else:print('无法获取路线规划。')# 获取街道地图for item in list_latlon:points = item.split(';')for point in points:coords = point.split(',')Lon.append(float(coords[0]))Lat.append(float(coords[1]))def PlotLineOnMap(Lat, Lon, filename):# 给出的坐标系为GCJ-02,如果需要测试google地图,需要进行坐标转换tri = np.array(list(zip(Lat, Lon)))san_map = folium.Map(location=[34.155709, 108.904262],zoom_start=13,# 高德街道图# tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',tiles='https://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=16&scale=1&style=8&x={x}&y={y}&z={z}',# 高德卫星图attr='default')folium.PolyLine(tri, color='#3388ff', fill=False).add_to(san_map)marker_cluster = plugins.MarkerCluster().add_to(san_map)for lat, lon in zip(Lat, Lon):folium.Marker([lat, lon], color='red').add_to(marker_cluster)file_path = f"{filename}.html"san_map.save(file_path)

代码分析:

exchange_route(route)
接收一个路线参数,然后提取其中每个步骤的经纬度坐标信息,并存储在list_latlon列表中
def updated_maps(ending_location, user_id):

将给定的经纬度坐标存放在一个列表当中,然后调用folium获取从起点开始,借助多个经纬度坐标点绘制路线图,同时进行标签,然后生成html文件,保存

    san_map = folium.Map(location=[34.155709, 108.904262],zoom_start=13,# 高德街道图# tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',tiles='https://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=16&scale=1&style=8&x={x}&y={y}&z={z}',# 高德卫星图attr='default')

zoom_start :是当前地图的放大倍数

tiles是瓦片服务   这是我找到的一个宝藏地址         :https://www.cnblogs.com/HandyLi/p/11137367.html

 四,地图显示:

使用qwebengine控件去显示网页

    def show_path(self, user_id):self.qwebengine.setFixedSize(700, 400)self.grid_layout.addWidget(self.qwebengine, 3, 1, 1, 1)# path = "file:\\" + os.getcwd() + "\\showpoint.html"path = "file:\\" + os.getcwd() + f"\\map_{user_id}.html"path = path.replace('\\', '/')self.qwebengine.load(QUrl(path))

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

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

相关文章

【漏洞复现】DPTech VPN存在任意文件读取漏洞

漏洞描述 DPtech是在网络、安全及应用交付领域集研发、生产、销售于一体的高科技企业。DPtech VPN智能安全网关是迪普科技面向广域互联应用场景推出的专业安全网关产品,集成了IPSec、SSL、L2TP、GRE等多种VPN技术,支持国密算法,实现分支机构…

[开源]Web端的P2P文件传输工具,简单安全高效的P2P文件传输服务

一、开源项目简介 小鹿快传 - 在线P2P文件传输工具 小鹿快传是一款Web端的P2P文件传输工具,使用了WebRTC技术实现P2P连接和文件传输。 二、开源协议 使用MIT开源协议 三、界面展示 产品截图 四、功能概述 简单安全高效的P2P文件传输服务 小鹿快传是一款Web端…

DolphinDB 浙商银行 | 第二期现场培训圆满结束

自 DolphinDB 高级工程师计划开展以来,客户们纷纷响应,除了定期收看我们每周三开设的线上公开课外,也有部分客户报名参加了 “总部工程师培训计划” 。 上周,我们迎来了总部培训的第二期学员:来自浙商银行的4位策略研…

什么是搜索相关性?AI如何驱动搜索相关性?

训练数据驱动机器学习,机器学习促进丰富的人机交互体验。在快速迭代的互联网时代,我们不断被各种广告铺盖,甚至经常细思极恐,“天呐,小红书怎么知道我面膜没了。”这都是算法和机器学习的鬼斧神工洞察着用户的搜索意图…

元素清空操作clear与选择操作check

元素清空操作clear与选择操作check clear() 作用 清空输入框的所有内容.clear() 等价于 .type("{selectall}{backspace}") 语法 .clear() .clear(options)option选项 元素选中操作check与uncheck check 语法 // 所有匹配到的选择框都会被选中一遍 .check()/…

【面试HOT300】滑动窗口篇

系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于【CodeTopHot300】进行的,每个知识点的修正和深入主要参…

bclinux aarch64 ceph 14.2.10 云主机 性能对比FastCFS vdbench

部署参考 ceph-deploy bclinux aarch64 ceph 14.2.10-CSDN博客 ceph-deploy bclinux aarch64 ceph 14.2.10【3】vdbench fsd 文件系统测试-CSDN博客 ceph 14.2.10 aarch64 非集群内 客户端 挂载块设备-CSDN博客 FastCFS vdbench数据参考 bclinux aarch64 openeuler 20.03 …

电商领域的三大沉疴难题?实在智能RPA来帮你药到病除!

在电商市场规模迅速扩大的当下,厂家们为了保持自身的竞争力,纷纷走上了数智化转型的道路,明白学会使用自动化利器才是制胜之道。 如今从产业的生产线到运营商、物流运输、商品售前、商品售后,实在RPA在电商平台的应用已经十分广泛…

PHP如何持续监听Redis的消息订阅并推送到前端?

PHP如何持续监听Redis的消息订阅并推送到前端? 概述: 在许多Web应用程序中,实时推送消息是很常见的需求。当我们需要向前端实时发送消息时,往往会使用轮询或长轮询的方式去获取最新数据。但这种方式对服务器资源的消耗较大,同时响…

Linux编程 文件操作 creat open

文件描述符 文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。 启动一个进程之后,…

常用的工作资料怎么在电脑上记录呢?

在现代工作中,我们经常需要记录各种各样的工作资料,例如会议记录、项目计划、待办事项等等。传统的纸质笔记本虽然方便携带,但难以整理和检索。而在电脑上直接记录常用的工作资料,在记录、整理、查看、使用等方面都是更为高效、便…

Amlogic方案遥控器配置(Android11)

配置路线 键值变化路径: ScanCode --> Keycode Lable --> KeyCode Layout --> KeyLable --> Keycode – > KeyEvent 文件映射路径: *.dtsi --> input-event-codes.h --> *.kl --> InputEventLable.h --> kecodes.h --> P…