For continuity, I think you need to fetch regular location updates from location client by giving location request like this.
LocationRequest request = LocationRequest.create()
.setInterval(0).setFastestInterval(0)
.setSmallestDisplacement(0)
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
Then for smooth animation you can follow the approach Steve Benett mentioned. here
The last case you mentioned in the comment about the path. I also had the same issue in one of my app. I tried with gps route simulator app to mock a route. then comparing my app and google map, googlemap followed the correct road path while my app's marker was moving slightly shifted from road. Then I tried some tweaks with marker. Like this
mPositionMarker = mMap.addMarker(new MarkerOptions()
.flat(true)
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.positionIndicator))
.anchor(0.5f, 0.5f)
.position(
new LatLng(location.getLatitude(), location
.getLongitude())));
This worked for me. This positioned my marker on same location as of google map. (Depends on the accuracy of location though).
Thanks for the answer here
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…