List<LatLng> latLngs = new ArrayList<>();
//然后把需要平滑移动的点坐标全部放入latLngs集合中
//下面就开始使用了
public void startMove() {
LatLngBounds.Builder b = LatLngBounds.builder();
for (int i = 0; i < latLngs.size(); i++) {
b.include(latLngs.get(i));
}
LatLngBounds bounds = b.build();
mAMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100));
// 取轨迹点的第一个点 作为 平滑移动的启动
LatLng drivePoint = latLngs.get(0);
Pair<Integer, LatLng> pair = SpatialRelationUtil.calShortestDistancePoint(latLngs, drivePoint);
latLngs.set(pair.first, drivePoint);
final List<LatLng> subList = latLngs.subList(pair.first, latLngs.size());
// 设置轨迹点
smoothMarker.setPoints(subList);
// 设置平滑移动的总时间 单位 秒
smoothMarker.setTotalDuration(100);
// 开始移动
smoothMarker.startSmoothMove();
// 设置移动的监听事件 返回 距终点的距离 单位 米
smoothMarker.setMoveListener(new SmoothMoveMarker.MoveListener() {
@Override
public void move(final double distance) {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
}
});
}
高德地图位置之间的平滑移动
猜你喜欢
转载自blog.csdn.net/I123456789T/article/details/85273722
今日推荐
周排行