2016-11-18 6 views
1

と融合位置プロバイダーを使用しています。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(); 
+0

「GPS座標を使用した手動計算」か「location.getSpeed」のどちらであっても、アンドロイドの速度を計算する最も簡単な方法はいくつですか?(https://stackoverflow.com/questions/21644990/whichあなたが手動で計算するかどうかにかかわらず、最高の方法で計算することができます)、それらが個別の誤った値である場合、突然のスパイクを除外するために、最新の2つの速度の中央値を計算することができます。もちろん、それはまた小さな遅れを導入するでしょう。または、それらの場所に悪い 'getAccuracy()'値がある場合は、単に「悪い」場所の速度を無視することができます。 –

答えて

0

をスピードを取得します。

+0

すでに私は、高精度モードで融合ロケーションプロバイダを使用していることに言及しています。 –

+0

ヒューズはそれを処理する必要があります。残念ながら、私はまだ解決策を見つけることができませんでした。 GPSは常に解決策ではないことに注意してください。場合によっては、WiFiの方がより正確です(たとえば、ショッピングモールで、またはデバイスにぎっしりとしたGPSレシーバーがある場合、LG G2はそれを持っていました)。再び、FUSEDはそれを処理するために生まれました。 * FUSE *の2つの場所を統合したヒューリスティックを持っています。次のバージョンのGoogle Playサービスで修正していただければ幸いです。 – Meymann

関連する問題