複数のマーカーでGoogleマップを作成しています。このマーカーを使用して車のアイコンを移動したいのですが。Move markers in google map v2 androidGoogleマップの場所のリストを持っている場合、マーカーをある場所から別の場所に移動する方法
私は車のアイコンを最初のポイントから2番目のポイントまで動かすことができます。しかし、それは2番目から3番目に移動していません。私はこのためにループのために使っていました。それは最終的にポイントになります。遅れも加えました。 。
ありがとうございます。
これは私のコードです::
public void setAnimation(GoogleMap myMap, final List<LatLng> directionPoint) {
anim_map = myMap;
anim_marker = myMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.bus_icon))
.position(directionPoint.get(0))
.flat(true));
myMap.animateCamera(CameraUpdateFactory.newLatLngZoom(directionPoint.get(0), 10));
if (directionPoint.size() >= 2) {
for (int i = 0; i < directionPoint.size() - 1; i++) {
h.post(new Runnable() {
@Override
public void run() {
animateMarker(anim_map, anim_marker, directionPoint, false);
}
});
}
}
}
private void animateMarker(GoogleMap myMap, final Marker marker, final List<LatLng> directionPoint,
final boolean hideMarker) {
final long start = SystemClock.uptimeMillis();
final long duration = 350000;
final Interpolator interpolator = new LinearInterpolator();
h.post(new Runnable() {
int i = 0;
@Override
public void run() {
long elapsed = SystemClock.uptimeMillis() - start;
float t = interpolator.getInterpolation((float) elapsed
/duration);
// Log.e("T Location", t + "");
double lng = t * directionPoint.get(i + 1).longitude + (1 - t) * directionPoint.get(i).longitude;
double lat = t * directionPoint.get(i + 1).latitude + (1 - t) * directionPoint.get(i).latitude;
marker.setPosition(new LatLng(lat, lng));
if (t < 1.0) {
h.postDelayed(this, 1);
} else {
if (hideMarker) {
marker.setVisible(false);
} else {
marker.setVisible(true);
}
}
}
});
}
私はi値をインクリメントすると目的地点に移動しますが、私の問題はこれがゆっくりと動きません。私が最初のループそのものが終了しました。私はそれを見ることはできません。 – Punithapriya
私が理解する限り、値をハードコーディングしている場合は、ループで遅れをとる必要があります。例:10秒。その後、あなたは見ることができます。 – Stallion
はい私も遅延を追加しましたが、動作しません。 – Punithapriya