Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class TrackActivity extends AppCompatActivity {
- public Handler mHandler;
- private Runnable runnable;
- private DatabaseReference driverWorking;
- private String driverId;
- private Marker carMaker;
- private double lat, lng;
- private float v;
- GoogleMap mMap;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_parcel_real_time_tracking);
- driverWorking = FirebaseDatabase.getInstance().getReference("OnlineDrivers").child(driverId);
- mHandler= new Handler();
- runnable = new Runnable() {
- public void run()
- {
- startTracking();
- }
- };
- mHandler.postDelayed(runnable, 3000L);
- }
- private void startTracking() {
- driverWorking.addChildEventListener(new ChildEventListener() {
- @Override
- public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
- setMarker(dataSnapshot);
- }
- @Override
- public void onChildChanged(DataSnapshot dataSnapshot, String previousChildName) {
- setMarker(dataSnapshot);
- }
- @Override
- public void onChildMoved(DataSnapshot dataSnapshot, String previousChildName) {
- }
- @Override
- public void onChildRemoved(DataSnapshot dataSnapshot) {
- }
- @Override
- public void onCancelled(DatabaseError error) {
- Log.d("Tracker-Tracker", "Failed to read value.", error.toException());
- }
- });
- }
- private void setMarker(DataSnapshot dataSnapshot) {
- LocationLatLng locationLatLng=dataSnapshot.getValue(LocationLatLng.class);//this is my model class that has lat & long of driver
- LatLng location = new LatLng(locationLatLng.getLatitude(), locationLatLng.getLongitude());
- }
- private void startAnimation(final LatLng startPosition, final LatLng endPosition) {
- final ValueAnimator valueAnimator = ValueAnimator.ofFloat(new float[] { 0.0F, 1.0F });
- valueAnimator.setDuration(3000L);
- valueAnimator.setInterpolator((TimeInterpolator)new LinearInterpolator());
- valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
- public void onAnimationUpdate(ValueAnimator param1ValueAnimator) {
- v = valueAnimator.getAnimatedFraction();
- lng = v * endPosition.longitude + (1 - v) * startPosition.longitude;
- lat = v * endPosition.latitude + (1 - v) * startPosition.latitude;
- LatLng newPos = new LatLng(lat, lng);
- carMaker.setPosition(newPos);
- carMaker.setAnchor(0.5f, 0.5f);
- carMaker.setRotation(PolyLineUtil.getBearing(startPosition,newPos));
- mMap.moveCamera(CameraUpdateFactory.newCameraPosition(
- new CameraPosition.Builder()
- .target(newPos)
- .zoom(15.5f)
- .build()));
- }
- });
- valueAnimator.start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement