QT Qwebengine 获取高德地图leaflet鼠标位置经纬信息

最近在开发时遇到需要显示离线瓦片地图的问题,并且希望能获取鼠标位置的经纬度信息,从全能地图下载器(搜一下就有)下载了1-18级离线地图。Qt这方面的解决方案非常少,遇到了非常多的问题:

1.如果从头开发一个地图界面非常麻烦,这里选择用Qwebengine显示一个web界面,而且web开发有现成的leaflet库,非常的方便!但是仅有一点微薄的html基础并且完全没接触过js,直接一头雾水,好在js语法非常简单,菜鸟教程一个上午就能了解个大概。

 leaflet中文站Documentation - Leaflet - 一个交互式地图 JavaScript 库

QWebEngineView也可以直接显示html界面,但是注意!用来和js交换数据的webchannel只作用在page,而且page会遮挡鼠标对QWebEngineView的操作。

2.用leaflet加载地图完成后发现坐标显示经纬和图片不是一个,经了解才知道原来高德地图用的坐标系称为火星坐标系(GCJ-02)而leaflet用的是84坐标系!于是这篇文章救了我。

Leaflet加载高德瓦片到WGS84坐标系下_leaflet 坐标系_才华横溢吴道简的博客-CSDN博客

包括第一个问题也解决了,只需要下载对应的js到本地即可完成离线(瓦片图也可以改为本地地址)

proj4.js下载地址:Releases · kartena/Proj4Leaflet · GitHub

3.在完成地图加载以后,需要QT获取地图的经纬坐标,这就需要QT与JS进行交互,直接参考这篇文章:https://www.cnblogs.com/sigma0/p/7346727.html

注意:这篇文章的重点4在我的leaflet版本上失效,需要将 updateInfo(e.point.lng,e.point.lat);改成updateInfo(e.latlng.lng,e.latlng.lat);

最后,缝合完成!

posted @   Canicula-X  阅读(465)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示