title: Fused location provider - Location.getSpeed() is very low
body: <p>In my app I want to track the distance traveled.<br>
  I wanted to check whether the user is moving or not.<br>
  I tried to look at the speed values, but <code>location.getSpeed()</code> is always a lot lower than the real speed.</p>
  <pre><code>fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
  
  locationRequest = LocationRequest.create();
  locationRequest.setInterval(1000);
  locationRequest.setSmallestDisplacement(0);
  locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
  locationRequest.setWaitForAccurateLocation(true);
  
  locationCallback = new LocationCallback()
  {
     @Override
     public void onLocationResult(@NonNull LocationResult locationResult)
     {
        for (Location location : locationResult.getLocations())
        {
           //OTHER CODE
           //...
  
           System.out.println(location.getSpeed());
  
           //OTHER CODE
           //...
        }
     }
  };
  
  fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, Looper.myLooper());
  </code></pre>
  <p>The values I get don't make any sense.<br>
  Of course, when I stand still I get really small values.<br>
  But when I walk I get values around 1.<br>
  And when I'm in a car I get values around 10-15 even though I'm actually going cca 50km/h.</p>
  <p>Am I doing something wrong, or is this normal?</p>