点平滑移动 最后更新时间: 2021年01月22日
简介
功能说明:根据输入的关键点和时间参数,实现点的平滑移动效果。
使用场景:可应用到展示车辆行驶轨迹、用户移动轨迹等场景。
版本要求:3D地图V4.1.3及以上。
效果示例:
如何实现点平滑移动
相关接口
- 设置平滑移动的经纬度数组:public void setPoints(List points)
- 设置平滑移动的总时间:public void setTotalDuration(int duration)
- 设置移动Marker的图标 :public void setDescriptor(BitmapDescriptor descriptor)
- 开始平滑移动 :public void startSmoothMove()
- 停止平滑移动 :public void stopMove()
示例代码
// 获取轨迹坐标点
List<LatLng> points = readLatLngs();
LatLngBounds bounds = new LatLngBounds(points.get(0), points.get(points.size() - 2));
mAMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50));
SmoothMoveMarker smoothMarker = new SmoothMoveMarker(mAMap);
// 设置滑动的图标
smoothMarker.setDescriptor(BitmapDescriptorFactory.fromResource(R.drawable.icon_car));
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();