Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.27 KB | None | 0 0
  1. public class TrackActivity extends AppCompatActivity {
  2.  
  3.  
  4.     public Handler mHandler;
  5.     private Runnable runnable;
  6.     private DatabaseReference driverWorking;
  7.     private String driverId;
  8.     private Marker carMaker;
  9.     private double lat, lng;
  10.     private float v;
  11.     GoogleMap mMap;
  12.  
  13.  
  14.     @Override
  15.     protected void onCreate(Bundle savedInstanceState) {
  16.         super.onCreate(savedInstanceState);
  17.         setContentView(R.layout.activity_parcel_real_time_tracking);
  18.         driverWorking = FirebaseDatabase.getInstance().getReference("OnlineDrivers").child(driverId);
  19.  
  20.         mHandler= new Handler();
  21.         runnable = new Runnable() {
  22.             public void run()
  23.             {
  24.  
  25.               startTracking();
  26.             }
  27.         };
  28.         mHandler.postDelayed(runnable, 3000L);
  29.     }
  30.  
  31.     private void startTracking() {
  32.  
  33.  
  34.         driverWorking.addChildEventListener(new ChildEventListener() {
  35.             @Override
  36.             public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
  37.                 setMarker(dataSnapshot);
  38.             }
  39.  
  40.             @Override
  41.             public void onChildChanged(DataSnapshot dataSnapshot, String previousChildName) {
  42.                 setMarker(dataSnapshot);
  43.             }
  44.  
  45.             @Override
  46.             public void onChildMoved(DataSnapshot dataSnapshot, String previousChildName) {
  47.             }
  48.  
  49.             @Override
  50.             public void onChildRemoved(DataSnapshot dataSnapshot) {
  51.             }
  52.  
  53.             @Override
  54.             public void onCancelled(DatabaseError error) {
  55.                 Log.d("Tracker-Tracker", "Failed to read value.", error.toException());
  56.             }
  57.         });
  58.     }
  59.  
  60.     private void setMarker(DataSnapshot dataSnapshot) {
  61.  
  62.         LocationLatLng locationLatLng=dataSnapshot.getValue(LocationLatLng.class);//this is my model class that has lat & long of driver
  63.  
  64.         LatLng location = new LatLng(locationLatLng.getLatitude(), locationLatLng.getLongitude());
  65.  
  66.     }
  67.  
  68.     private void startAnimation(final LatLng startPosition, final LatLng endPosition) {
  69.  
  70.         final ValueAnimator valueAnimator = ValueAnimator.ofFloat(new float[] { 0.0F, 1.0F });
  71.         valueAnimator.setDuration(3000L);
  72.         valueAnimator.setInterpolator((TimeInterpolator)new LinearInterpolator());
  73.         valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
  74.             public void onAnimationUpdate(ValueAnimator param1ValueAnimator) {
  75.                 v = valueAnimator.getAnimatedFraction();
  76.                 lng = v * endPosition.longitude + (1 - v) * startPosition.longitude;
  77.                 lat = v * endPosition.latitude + (1 - v) * startPosition.latitude;
  78.  
  79.                 LatLng newPos = new LatLng(lat, lng);
  80.                 carMaker.setPosition(newPos);
  81.                 carMaker.setAnchor(0.5f, 0.5f);
  82.                 carMaker.setRotation(PolyLineUtil.getBearing(startPosition,newPos));
  83.                 mMap.moveCamera(CameraUpdateFactory.newCameraPosition(
  84.                         new CameraPosition.Builder()
  85.                                 .target(newPos)
  86.                                 .zoom(15.5f)
  87.                                 .build()));
  88.             }
  89.         });
  90.         valueAnimator.start();
  91.     }
  92.  
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement