2016-07-25 8 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

を解決できませんが、なぜfloatからlongにキャストして浮動小数点にするのですか? –

答えて

0

なぜあなたは同じように、getSpeed()方法ですべての場所オブジェクトから速度を得ることはありません:。

float speed = location.getSpeed(); 
+0

???それはどのように機能するのですか? O> o 2点からのスピードですか?あなたはどのように位置オブジェクトから速度を得ますか? –

+0

LocationManagerによって生成される場所は、通常、速度などの他のオプション情報で構成されます。 hasSpeed()メソッドを使用して、場所に速度があるかどうかを確認できます – momo

関連する問題