Skip to content

Instantly share code, notes, and snippets.

@amanjeetsingh150
Last active November 10, 2018 07:57
Show Gist options
  • Save amanjeetsingh150/cbe66afdd44920f80abc4730d4d10350 to your computer and use it in GitHub Desktop.
Save amanjeetsingh150/cbe66afdd44920f80abc4730d4d10350 to your computer and use it in GitHub Desktop.
private void animateCarOnMap(final List<LatLng> latLngs) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (LatLng latLng : latLngs) {
builder.include(latLng);
}
LatLngBounds bounds = builder.build();
CameraUpdate mCameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, 2);
mMap.animateCamera(mCameraUpdate);
if (emission == 1) {
marker = mMap.addMarker(new MarkerOptions().position(latLngs.get(0))
.flat(true)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_car)));
}
marker.setPosition(latLngs.get(0));
ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1);
valueAnimator.setDuration(1000);
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
v = valueAnimator.getAnimatedFraction();
double lng = v * latLngs.get(1).longitude + (1 - v)
* latLngs.get(0).longitude;
double lat = v * latLngs.get(1).latitude + (1 - v)
* latLngs.get(0).latitude;
LatLng newPos = new LatLng(lat, lng);
marker.setPosition(newPos);
marker.setAnchor(0.5f, 0.5f);
marker.setRotation(getBearing(latLngs.get(0), newPos));
mMap.animateCamera(CameraUpdateFactory.newCameraPosition
(new CameraPosition.Builder().target(newPos)
.zoom(15.5f).build()));
}
});
valueAnimator.start();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment