背景:项目需求。要求历史轨迹回放要能播放、暂停,对播放进度控制,播放速度控制,刚开始以官方demo的平滑移动作为demo进行开发,但是发现没法控制进度,速度只有一个API smoothMarker.setTotalDuration(40); 但是都没办法根据需求进行设置。速度太快信息框都有时跟不上会闪动。
所以理清思路:
分以下几个步骤
首先是后台返回经纬度数据列表
1.根据数据列表在地图 画线,画线api很容易,什么样式都可以设置。
2.接下来就是加上一个marker和信息框。官方的信息框如果不修改信息不会改变,默认加在起点位置。
3.就是设置进度,进度就是根据列表的长度设置。拖动进度就把marker移动到列表的position。
4.接着就是最后的速度了。速度因为没有API能调用,只能做定时任务。时间范围在1秒到40毫秒。
5.至于播放,暂停则更加容易了,通过定时任务取消就行了。
有了思路后,就开始搞起。完工还是先看一下效果图。
注:主要api
AMap.animateCamera不适合在移动的时候使用,会卡顿跟不上,原因也有动画延时, AMap.moveCamera直接移动动中心点。
设置箭头的方向 Marker.setRotateAngle,后台返回是顺时针方向的数字,api要求的事逆时针。
其他直接看demo的代码,我直接放在官方demo的第一个item上面。
git demo 地址:https://github.com/talentsxh/mapMove