点平滑移动 最后更新时间: 2024年11月21日
功能说明:根据输入的关键点和时间参数,实现点的平滑移动效果。
使用场景:可应用到展示车辆行驶轨迹、用户移动轨迹等场景。
效果示例:
如何实现点平滑移动
MovingPointOverlay 代码位置:
com.amap.maps.jsmap.demo.smoothmove.MovingPointOverlay.java
代码调用示例:
// 读取轨迹点
List<LatLng> points = readLatLngs();
// 实例 MovingPointOverlay 对象
if(smoothMarker == null) {
// 设置 平滑移动的 图标
marker = mAMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_car))
.anchor(0.5f,0.5f));
smoothMarker = new MovingPointOverlay(mAMap, marker);
}
// 取轨迹点的第一个点 作为 平滑移动的启动
LatLng drivePoint = points.get(0);
Pair<Integer, LatLng> pair = SpatialRelationUtil.calShortestDistancePoint(points, drivePoint);
points.set(pair.first, drivePoint);
List<LatLng> subList = points.subList(pair.first, points.size());
// 设置轨迹点
smoothMarker.setPoints(subList);
// 设置平滑移动的总时间 单位 秒
smoothMarker.setTotalDuration(40);
// 开始移动
smoothMarker.startSmoothMove();