首页| 论坛| 消息

标题:Qt/C++地图导航app/支持qml/手机运行/输入起点终点规划路径/模拟轨迹移动
作者:liudianwu
日期:2024-10-31 08:02
内容:

## 一、前言说明
搞Qt地图开发这块,随着研究的深入,用户的需求变化,最近又需要在手机上运行,由于本地图组件依赖浏览器控件,而手机安卓上的Qt并没有带qwebengine控件,怎么办呢,不断的努力验证下,发现Qt安卓上提供了webview控件可以加载网页,而webview在安卓上只能用qml,根据官方的文档描述,webview在win和linux系统中,依赖qwebengine模块,也就是底层其实就是使用的qwebengine模块,而在移动端手机端使用的本地浏览器组件,可行性搞定了以后就撸起袖子开干了。
仅仅是加载网页肯定没有问题了,毕竟本地图组件就是根据用户需要的功能,生成了地图的网页,直接传入加载即可。新的问题是如何交互呢,在qwebengine中提供了qwebchannel.js可以非常方便的进行通信,而在qml中的webview控件,目前貌似不能用这个,毕竟底层并不是qwebengine模块,必须另想他法。在Qt中执行js函数可以很方便的直接用runjs函数,可是执行的结果如何传回Qt中接收到,这个想到了最简单最方便的办法,那就是websocket通信,Qt程序这边搞个webserver监听固定端口,网页中主动连接这个websocket即可,打完收工非常完美。
## 二、功能特点
### 2.1 地图功能
1. 支持多种地图内核,默认采用百度地图,可选高德地图、天地图、腾讯地图、谷歌地图等。
2. 同时支持在线地图和离线地图两种模式,离线地图方便在不联网的场景中使用。
3. 支持各种地图控件的启用,比如地图导航、地图类型、缩略图、比例尺、全景导航、实时路况、绘图工具、结果面板等。
4. 支持多种地图功能的动态启用禁用,比如地图拖曳、键盘操作、滚轮缩放、双击放大、连续缩放、地图测距等。
5. 提供众多js函数接口用于交互,参数极其丰富,能够想到的应用场景需求都有。
6. 统一的信号槽机制,地图中的结果统一信号发送出去,收到后根据type类型区分。
7. 支持地图交互,比如鼠标按下获取对应位置的经纬度。单击标注点弹出对应点的信息。
8. 支持添加标注、删除标注、移动标注、清空标注。
9. 标注点可以指定图标图片和尺寸,支持gif动图,支持指定以图片中心对齐还是底部中心对齐。可以设置旋转角度,带富文本提示信息。
10. 标注点事件支持单击发信号通知和自己弹框显示信息。
11. 提供地址转坐标和坐标转地址接口。
12. 支持各种图形绘制,包括折线图、多边形、矩形、圆形、弧线等。
13. 可显示悬浮的绘图工具栏,直接在地图上划线、标注点、矩形、圆形等。
14. 支持各种区域搜索,比如矩形区域、圆形 ..

回复 发表
主题 版块