2013-01-23 91 views
2

我需要計算每個位置更新的移動速度。Android設備移動速度

我正在使用以下代碼進行位置更新。

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"); 
    } 
} 

如何獲得移動速度?我應該計算兩次更新之間的時間以及第一個地點和下一個地點之間的距離嗎?或者有其他方法嗎?

+1

恩,你看過位置類嗎?有一個getSpeed()方法。 – jsmith

+0

哇,謝謝先生@jsmith :)回答它就像一個答案沒有評論,所以我可以接受並upvote你的答案。謝謝。 – Naskov

回答

1

正如@jsmith所說,Location.class中有一個getSpeed()方法。

public class LocationListener implements LocationListener 
    { 
     @Override 
     public void onLocationChanged(Location location) 
     { 
       float speed = location.getSpeed(); 
     } 
    } 
1

但是,location.getSpeed()給出了空值。您必須指定setSpeed()以獲取可能不準確的位置。所以,可以用簡單的數學公式來計算速度。 速度=距離/時間。

+0

由於這是針對Google Maps API v1的,因此很多事情都發生了變化。 – Naskov