接到的第一个任务是做个实时绘制轨迹的Demo。之前没接触过地图相关的开发,查了好多资料。最后确定用高德提供的API。下面记录一下开发的过程以及遇到的问题。
- 首先在高德官网注册开发者账号,然后根据App名字获取相应的Key。
- 导入框架
- 拿到key之后,用到代码中。
- 根据高德开发平台提供的Demo了解到绘制路径主要是两个类
MAPolyLine
和MAPolylineRenderer
。其中MAPolyLine
相当于数据源。 -
在绘制路径遇到了些麻烦。一开始选择每隔一定的距离绘制一条线,这种方案是可行的,但是路径绘制比较不圆滑,棱角分明,而且会出现比较飘的点。如下图所示:
查找相关资料后了解到,需要将路径点进行优化。首先选择从官网找相应的Demo,查找相关资料后了解到,需要将路径点进行优化。首先在高德开放平台找到了轨迹平滑处理的Demo。很开心,简单学习后应用到App中,但是好景不长,又遇到了新的问题。因为采用的是每隔五米画一条线的方案,然后就出现绘制的路径是虚线的Bug,如下图:
想了一下原因应该是优化后的点和实际定位的点有偏差。想了一下原因应该是优化后的点和实际定位的点有偏差。然后想了第二种方案,每次更新位置时将所有点进行重绘,而不是每次只绘制一条线段。满心欢喜的跑去测试,又出现了新的问题,绘制的线条涂抹痕迹严重,原因也很简单,就是没有将之前的覆盖物移除,都叠加在了一起。于是乎,每次绘制之前都将上一次的轨迹移除。线条倒是正常绘制了。但是出现了闪烁的Bug,原因未知,可能是频繁移除添加导致的吧。
目前优化后的效果是这样的:
具体如何优化的有时间再继续写。。