2016-07-25 83 views
0

我目前正試圖通過使用GooglePlayServices來獲取某人的速度。正確無法獲得速度值 - 投射不起作用

我已經設法連接到服務並獲取有關位置的更新,但問題在於如何解決相關人員的速度 - 也就是說,我在劃分時間和距離時遇到了問題。

我以前發佈過這個,有人建議鑄造長時間會解決這個問題。它很快被標記爲重複的,所以我沒有繼續討論,但我想說這是行不通的。

以下是我目前的代碼。

float Distance = OldLocation.distanceTo(location); 
    //Getting Difference in seconds 
    long TimeDiff = location.getTime()-OldLocation.getTime(); 
    float SecondDiff = TimeUnit.MILLISECONDS.toSeconds(TimeDiff); 
    //Finally working out speed (m/s) 
    if (SecondDiff == 0) { 
     SecondDiff = 1; 
    } 
    float Speed = ((long)Distance/SecondDiff); 

速度持續在0上而不是正確的值。我已經投入了很多,但它拒絕。

我也試過:

float Speed = ((long)Distance/(long)SecondDiff); 

float Speed = (long)(Distance/SecondDiff); 

什麼可能是我的問題的根源嗎?

+0

浮動F =((長)(距離/ SecondDiff))的floatValue(); –

+0

無法解析方法floatValue –

+0

但爲什麼你從浮動投射到很長,並再次浮動 –

回答

0

你爲什麼不只是由getSpeed()方法從每一個位置對象獲取的速度,如:

float speed = location.getSpeed(); 
+0

???這是如何運作的? O> o這是兩點的速度嗎?你如何從位置對象獲得速度? –

+0

那麼LocationManager生成的位置通常由其他可選信息組成,如速度。您可以使用hasSpeed()方法檢查位置是否有速度 – momo