I don't understand, the Interval in milliseconds works well, but the minimum distance doesn't work. How to get the onLocationResult be triggered all the 30m of displacement in a LocationRequest with the locationCallback ?
if (locationRequest == null) {
locationRequest = new LocationRequest();
if (drivingtype == Constants.DRIVING_TYPE_BICYCLE) {
locationRequest.setInterval(Constants.GPS_UPDATE_TIMING_PRECISION);
locationRequest.setFastestInterval(Constants.GPS_UPDATE_PRECISION);
locationRequest.setSmallestDisplacement(30f);
} else {
locationRequest.setInterval(Constants.GPS_UPDATE_TIMING_PRECISION);
locationRequest.setFastestInterval((Constants.GPS_UPDATE_PRECISION) / 4);
locationRequest.setSmallestDisplacement(30f);
}
locationRequest.setPriority(LocationRequest.PRIORITY_LOW_POWER );
}
if (locationCallback == null) {
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
Location location = locationResult.getLastLocation();
if (location != null) {
// Traitement des mises à jour de localisation
// La position a changé. Obtenez les coordonnées et mettez à jour la carte.
latitude = location.getLatitude();
longitude = location.getLongitude();
SOLUTION:
Based on the answer proponed by @Jemshit,
//Time
//Distance