這似乎應該很簡單,但我似乎無法得到如何使用Android的定位服務計算我的速度的清晰示例。計算Android中兩個位置點之間的速度
我想要做的就是根據我以前和當前的GPS位置計算我的速度。 getSpeed()不起作用,因爲它需要使用setSpeed()在某個點設置。
那麼有沒有任何示例代碼,我可以在Eclipse中運行我的Android模擬器運行GPX文件,這將顯示我的步伐在任何措施(米,英尺,英里等,無所謂 - 我總是可以將其轉換爲我需要的)。
在此先感謝,亞歷克斯
這似乎應該很簡單,但我似乎無法得到如何使用Android的定位服務計算我的速度的清晰示例。計算Android中兩個位置點之間的速度
我想要做的就是根據我以前和當前的GPS位置計算我的速度。 getSpeed()不起作用,因爲它需要使用setSpeed()在某個點設置。
那麼有沒有任何示例代碼,我可以在Eclipse中運行我的Android模擬器運行GPX文件,這將顯示我的步伐在任何措施(米,英尺,英里等,無所謂 - 我總是可以將其轉換爲我需要的)。
在此先感謝,亞歷克斯
getSpeed()不工作,因爲它需要在使用setSpeed某個時間點被設定( )。
(如果您正在使用實際設備 - )。不,速度取決於GPS芯片組,它應該比獲取兩個連續位置之間的距離和時間更準確。你不需要setSpeed()
。請致電hasSpeed()
查看速度是否有效。
(如果你使用的不是實際的設備) 我已經使用模擬位置提供/良好的成功在這裏你可以設置要與米setSpeed()
的Location
對象第二
以下是這樣做的一些方法:
你剛纔的意思是這樣?以m/s爲單位給出速度。
oldLocation.distanceTo(newLocation)/(newLocation.getTime() - oldLocation.getTime())
這可能會工作,但有時可能會帶來一些糟糕的結果(即由於一個計算錯誤的位置而引起的高振盪)。您可以通過計算更多位置數據集的平均值來使其更平滑。 – stefan
還要記住'getTime()'返回毫秒數,而不是秒數。所以如果你期望'm/s',那麼你的係數就是10^3。 – 2011-11-20 16:53:51