Animate or Move marker along with rout path on GoogleMap

こ雲淡風輕ζ 提交于 2019-12-11 15:55:31

问题


First time i am working with google maps and i am stuck in very critical situation. Actually i want to animate marker along with poly line(rout drawn), in this regard i have been attempted many codes but not single one approach is going to fire.

What approach i am using that is first time i draw a rout b/w rider and user destinations, After Ward as the lat long of rider is changes i push his lat long to firebase. Meanwhile i am getting the update lat long of rider to user side in map and then rout draw.

For your better understanding here is my code.

Here is how i draw path b/w rider and user...

public void pathDraw(String startLat,String startLon,String endLat,String endLon,int orginDrawable, int desTinationDrawable){

    LatLng origin = new LatLng(Double.parseDouble(startLat), Double.parseDouble(startLon));
    LatLng destination = new LatLng(Double.parseDouble(endLat), Double.parseDouble(endLon));
    DrawRouteMaps.getInstance(this)
            .draw(origin, destination, mGoogleMap);
    DrawMarker.getInstance(this).draw(mGoogleMap, origin,orginDrawable, "Origin Location");
    DrawMarker.getInstance(this).draw(mGoogleMap, destination, desTinationDrawable, "Destination Location");
    LatLngBounds bounds = new LatLngBounds.Builder()
            .include(origin)
            .include(destination).build();
    Point displaySize = new Point();
    getWindowManager().getDefaultDisplay().getSize(displaySize);
    mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, displaySize.x, 1000, 15));
}

And here is the Firebase method cal every time when lat long update.

  public void mapChangeAnimation(final boolean user){
    mDatebaseTracking.keepSynced(true);
    DatabaseReference query = mDatebaseTracking.child(order_id);

    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            rider_lat = ""+dataSnapshot.child("rider_lat").getValue();
            rider_long = ""+dataSnapshot.child("rider_long").getValue();
            String latlong = rider_lat + " "+ rider_long;

            if(!user) {
                LatLng latLngBegin = new LatLng(Double.parseDouble(rider_lat),Double.parseDouble(rider_long));
                LatLng latLngEnd = new LatLng(Double.parseDouble(rest_lat),Double.parseDouble(rest_long));   
            }
            else {
                LatLng latLngBegin = new LatLng(Double.parseDouble(rider_lat),Double.parseDouble(rider_long));
                LatLng latLngEnd = new LatLng(Double.parseDouble(user_lat),Double.parseDouble(user_long));                  
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
}

You suggestion will be appreciated. Also if you please post a code according to my scenario. Thanks in advance


回答1:


To animate your marker along the route path from starting point to an ending point, you can refer to this code.

https://gist.github.com/broady/6314689

If you want for easier implementation, you can use libraries available to do the same.

  1. https://github.com/amalChandran/trail-android
  2. https://github.com/amanjeetsingh150/UberCarAnimation

The libraries do not have exact implementation and you may have to tweak it a bit.



来源:https://stackoverflow.com/questions/49667906/animate-or-move-marker-along-with-rout-path-on-googlemap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!