更新时间:2022-10-27
Android 7.4.0 起支持动态轨迹绘制,开发者可以提供轨迹数据,来动态展示轨迹。支持监听轨迹绘制状态。
绘制动态轨迹
1、通过TraceOptions类来设置轨迹的属性。
示例代码如下:
TraceOptions traceOptions = new TraceOptions(); traceOptions.animationTime(5000); traceOptions.animate(true); traceOptions.animationType(TraceOptions.TraceAnimateType.TraceOverlayAnimationEasingCurveLinear); traceOptions.color(0xAAFF0000); traceOptions.width(10); traceOptions.points(getTraceLocation());
2、绘制动态轨迹并监听轨迹绘制状态。
示例代码如下:
mBaiDuMap.addTraceOverlay(traceOptions, new TraceAnimationListener() { @Override public void onTraceAnimationUpdate(int percent) { // 轨迹动画更新进度回调 } @Override public void onTraceUpdatePosition(LatLng position) { // 轨迹动画更新的当前位置点回调 } @Override public void onTraceAnimationFinish() { // 轨迹动画结束回调 } });
绘制效果如图:
3、绘制轨迹动画图标。
自V7.5.4起,支持轨迹动画图标。开发者可自定义动画图标,图标跟随动态轨迹平滑移动。
示例代码如下:
// 创建轨迹对象 TraceOptions traceOptions = initTraceOptions(); // 创建图标 BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.marker_blue); // 设置轨迹动画图标并让图标平滑移动 traceOptions.icon(bitmap).setPointMove(true); // 添加轨迹动画 mTraceOverlay = mBaiDuMap.addTraceOverlay(traceOptions, this);
注:必须调用setPointMove(true)方法才能看到轨迹动画图标
绘制效果如图:
https://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/dynamictory_3.mp4