2

我需要计算每次位置更新的移动速度。

我正在使用以下代码进行位置更新。

public class FlirtLocationListener implements LocationListener
{
    @Override
    public void onLocationChanged(Location location) 
    {

                // My Code on the location update
    }
    @Override
    public void onProviderDisabled(String provider) 
    {
        Log.i("OnProviderDisabled", "OnProviderDisabled");
    }
    @Override
    public void onProviderEnabled(String provider) 
    {

        Log.i("onProviderEnabled", "onProviderEnabled");
    }
    @Override
    public void onStatusChanged(String provider, int status,
            Bundle extras) 
    {
        Log.i("onStatusChanged", "onStatusChanged");
    }
}

如何获得移动速度?我应该计算两次更新之间的时间以及第一个位置和下一个位置之间的距离吗?还是有其他方法?

4

2 回答 2

1

正如@jsmith 所说getSpeed()Location.class.

public class LocationListener implements LocationListener
    {
        @Override
        public void onLocationChanged(Location location) 
        {
               float speed = location.getSpeed();
        }
    }
于 2013-01-29T08:11:42.790 回答
1

但是, location.getSpeed() 给出空值。您必须指定 setSpeed() 以获取可能不准确的位置。因此,可以使用简单的数学公式计算速度。速度=距离/时间。

于 2014-08-03T13:53:49.310 回答