2011-11-20 104 views
1

這似乎應該很簡單,但我似乎無法得到如何使用Android的定位服務計算我的速度的清晰示例。計算Android中兩個位置點之間的速度

我想要做的就是根據我以前和當前的GPS位置計算我的速度。 getSpeed()不起作用,因爲它需要使用setSpeed()在某個點設置。

那麼有沒有任何示例代碼,我可以在Eclipse中運行我的Android模擬器運行GPX文件,這將顯示我的步伐在任何措施(米,英尺,英里等,無所謂 - 我總是可以將其轉換爲我需要的)。

在此先感謝,亞歷克斯

回答

1

getSpeed()不工作,因爲它需要在使用setSpeed某個時間點被設定( )。

(如果您正在使用實際設備 - )。不,速度取決於GPS芯片組,它應該比獲取兩個連續位置之間的距離和時間更準確。你不需要setSpeed()。請致電hasSpeed()查看速度是否有效。


(如果你使用的不是實際的設備) 我已經使用模擬位置提供/良好的成功在這裏你可以設置要與米setSpeed()Location對象第二

以下是這樣做的一些方法:

2

你剛纔的意思是這樣?以m/s爲單位給出速度。

oldLocation.distanceTo(newLocation)/(newLocation.getTime() - oldLocation.getTime())

+2

這可能會工作,但有時可能會帶來一些糟糕的結果(即由於一個計算錯誤的位置而引起的高振盪)。您可以通過計算更多位置數據集的平均值來使其更平滑。 – stefan

+0

還要記住'getTime()'返回毫秒數,而不是秒數。所以如果你期望'm/s',那麼你的係數就是10^3。 – 2011-11-20 16:53:51

相關問題