2017-04-02 7 views
1

getAccuracy()を使用して場所の正確さを確認できますが、正確さのために切り詰めを設定した場合は、ユーザーがどこにいるのかを大いに忘れてしまいましたか?ユーザーが静止している場合と同様に、ほとんどの場所の更新は彼の地域の周りに集中しますが、時には場所の提供者がいつかどこか離れているようにしっかりとした場所を報告します。LocationProvider - 非常に不正確な場所や間違った場所を検出する

これらの場所は、getAccuracyで「正確」と表示されますか?あるいは、彼らは驚くほど高いgetAccuracy()の結果になるでしょうか?カットオフポイントをプログラミングするのは簡単ですが、場所が以前のものとあまりにも異なる場合など、余分なチェックをコーディングする必要があるかどうか疑問に思っていました。

+0

これらのしゃっくりのために、getAccuracy()は大きな数値を返しますが、その場所はキャッシュされ、むしろ古いかもしれません。 IMHO正確さは時にはあまり意味があります - 場所の年齢も重要です。私の答えを見てください。 –

答えて

0

精度はここで唯一の決定要因ではありません。また、場所の年齢とプロバイダを取得する必要があります(Google Playサービスの場所ではわかりませんが、元のAndroid LocationManagerで確認できます)。

実際、Googleにはmaintaining a current best estimateの便利なサンプルコードがいくつかあります。私は、着信位置データのワイルドジャンプをフィルタリングするために、これの変形を使用しました。基本的に、このゲートを通過しなければ、場所は報告されません。

+0

私はonLocationChangedからのロケーションレポートしか取得できません。それは、ロケーションが最後のものより古いことはありませんか?私はFusedProvider yesを使用しています。私はいつも(getTime()で)報告された時間をチェックし、わかっている限り、それは決して古い場所を返しません。 – ashxu

+0

妥当と思われますが、私は確かに分かりません。しかし、融合したプロバイダがネットワークから発信されたキャッシュされた場所を提供する場合、GPSシステムが起動する前に、キャッシュされた場所は最初のGPS場所よりも古いタイムスタンプを持つことになります。 –

関連する問題