У меня есть полилиния, маркер и пункт назначения.Полилинии идут в направлении точки назначения.
Я знал, что полилиния является коллекцией LatLng (точка), поэтому разрыв между точкой внутри коллекции случайным образом генерируется gii направлением api.
Проблема в том, что когда я анимирую маркер, он быстро перемещается через точку один за другим с задержкой между точками.
Что я хочу знать, так это как сделать точку внутри коллекции ближе друг к другу, чтобыанимация будет более плавной, или если есть другой метод для создания более плавной анимации и как рассчитать продолжительность этой анимации.
Это то, что я сделал для перемещения маркера.
public static void animateMarker(final GoogleMap myMap, final Marker marker, final List<LatLng> directionPoint, final boolean showMarker) {
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
final long duration = 3000;
final Interpolator interpolator = new AccelerateDecelerateInterpolator();
handler.post(new Runnable() {
int i = 0;
float t,v;
long elapsed;
@Override
public void run() {
elapsed = SystemClock.uptimeMillis() - start;
t = elapsed / duration;
v = interpolator.getInterpolation(t);
if (i < directionPoint.size()){
marker.setPosition(directionPoint.get(i));
i++;
}
if (t < 1) {
// Post again 16ms later.
handler.postDelayed(this, 16);
}
}
});
}