标题:Qt/C++地图动态绘制折线多边形矩形圆形标注点/可编辑拖动调整大小和位置
作者:liudianwu
日期:2024-11-03 10:01
内容:
## 一、前言说明
无论哪一家的地图,都提供了调用函数绘制各种覆盖物,但是有时候的场景是希望进入添加覆盖物模式,然后每次在地图上按下都自动生成对应的覆盖物比如圆形,这样就不需要用户提前知道经纬度坐标等参数,而是让用户自己在地图上拾取即可,这样灵活性就极大的提高了。百度地图和腾讯地图是提供了绘图工具栏来实现,高德和天地图提供了对应的函数接口,函数接口名基本上是在对应覆盖物末尾加上tool字样,比如折线覆盖物是polyline,折线工具是polylinetool,一旦进入某一种覆盖物添加模式,则每次在地图上添加的都是该种类型的覆盖物,如果需要添加其他覆盖物,需要重新切换覆盖物的类型。
添加好的覆盖物,有时候又需要重新编辑调整,比如标注点调整位置,圆形调整半径,多边形调整坐标等,所以需要让各种覆盖物进入编辑状态,于是新增通用函数接口,用于将界面上的所有覆盖物进入和退出编辑状态。不同地图厂家对应提供的接口都不同,有些是调用enableEdit,有些是enableEditing,甚至还有是enableDragging,而且有些是拖动和编辑都需要单独调用函数,比如setDraggable和setEditable,因为多边形既可以拖动位置,也可以调整边边角角拉伸坐标。所有就封装了这么个通用的函数来处理。
## 二、功能特点
### 2.1 地图功能
1. 支持多种地图内核,默认采用百度地图,可选高德地图、天地图、腾讯地图、谷歌地图等。
2. 同时支持在线地图和离线地图两种模式,离线地图方便在不联网的场景中使用。
3. 支持各种地图控件的启用,比如地图导航、地图类型、缩略图、比例尺、全景导航、实时路况、绘图工具、结果面板等。
4. 支持多种地图功能的动态启用禁用,比如地图拖曳、键盘操作、滚轮缩放、双击放大、连续缩放、地图测距等。
5. 提供众多js函数接口用于交互,参数极其丰富,能够想到的应用场景需求都有。
6. 统一的信号槽机制,地图中的结果统一信号发送出去,收到后根据type类型区分。
7. 支持地图交互,比如鼠标按下获取对应位置的经纬度。单击标注点弹出对应点的信息。
8. 支持添加标注、删除标注、移动标注、清空标注。
9. 标注点可以指定图标图片和尺寸,支持gif动图,支持指定以图片中心对齐还是底部中心对齐。可以设置旋转角度,带富文本提示信息。
10. 标注点事件支持单击发信号通知和自己弹框显示信息。
11. 提供地址转坐标和坐标转地址接口。
12. 支持各种图形绘制,包括折线图、多边形、矩形、圆形、弧线等。
13. 可显示悬浮的绘 ..