首页| 论坛| 消息

标题:Qt编写地图综合应用22-动态轨迹
作者:liudianwu
日期:2021-01-18 15:19
内容:

## 一、前言
上一篇文章写道拿到路径规划的轨迹点坐标集合,并且已经可以通过调用addPolyline绘制线段的形式将轨迹点绘制,接下来就是要如何动态的绘制这些轨迹点,最简单的方法就是开个定时器挨个取出下一个经纬度坐标,然后调用封装好的moveMarker函数将经纬度坐标传过去,异步交互使得标注点在移动,也可将将定时器的方法写在网页的js函数中,但是就不够灵活了,还不如直接用Qt的定时器进行控制更方便一些,这里要特别注意的是轨迹点坐标传过来的是数组的数组,因为很可能是多段线条组成,所以需要循环取出来。

近期在做机器人监控平台,需要动态显示机器人走过的轨迹,同时还需要在地图上选点来规划路径,然后将得到的路径的轨迹点坐标信息发送给机器人,让机器人自己根据收到的经纬度坐标自行移动,有时候查询到的轨迹点坐标集合数量非常多,受限于机器人本身的内存空间,要求能够设定过滤机制来过滤轨迹点,然后将过滤后的轨迹点信息下发,比如设定只需要50个点,而接收到的有300个点,则自动取平均值进行过滤,比如每隔6个点取一个点坐标,然后首尾坐标必须在,这样就保证了整条路径的完整性。

设置标注点产生动态轨迹效果有两种办法,一种是直接全部清空标注点,将新的标注点带经纬度坐标位置,重新加载,也就是说先调用deleteMarker函数清空所有标注点,然后调用addMarker函数挨个设置新的标注点;还有一种方法是传入移动的标注点的标识信息,让js函数自动查找到以后执行setPosition方法即可;在标注点很少比如就一个的情况下,两种办法效率几乎一样,多了的清空下,方法二是最佳选择,没必要重复的删除又添加,就让存在的标注点对象自己setPosition好了。

- 第一步:动态选取起始点和结束点经纬度坐标。
- 第二步:选择路径规划的方式(步行、公交、驾车、骑行)。
- 第三步:选择路径规划的策略(最少时间、最短距离等)。
- 第四步:单击查询,接收传过来的路径点坐标集合存起来。
- 第五步:开启定时器,挨个取出下一个经纬度坐标,设置标注点的坐标。
- 第六步:直到经纬度坐标取完,停止定时器。
[color=#44 ..


#1 [shanquan 01-20 13:24]

#2 [zuoyi 01-27 13:37]

回复 发表
主题 版块