と融合位置プロバイダーを使用しています。PRIORITY_HIGH_ACCURACY位置ポーリングのモードですが、77m/sのような間違った位置速度を与えることがあります。場所の速度融合プロバイダーを使用して間違っています
場所要求:
mLocationRequest = new LocationRequest();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(6000);
mLocationRequest.setSmallestDisplacement(80);
たぶん、あなたは正確な値を取得するためにGPSプロバイダに変更するため、以下の精度を提供するネットワークプロバイダを使用している場所の更新に
Double lat = location.getLatitude();
Double lon = location.getLongitude();
float sd = (float) location.getAltitude();
// float ac_speed = sd;
//----- For Testing Purpose---------------//
float ac_speed = location.getSpeed();
「GPS座標を使用した手動計算」か「location.getSpeed」のどちらであっても、アンドロイドの速度を計算する最も簡単な方法はいくつですか?(https://stackoverflow.com/questions/21644990/whichあなたが手動で計算するかどうかにかかわらず、最高の方法で計算することができます)、それらが個別の誤った値である場合、突然のスパイクを除外するために、最新の2つの速度の中央値を計算することができます。もちろん、それはまた小さな遅れを導入するでしょう。または、それらの場所に悪い 'getAccuracy()'値がある場合は、単に「悪い」場所の速度を無視することができます。 –