このGeoCoordinateWatcher
クラスを使用すると、ユーザーの現在の場所を継続的に更新できます。イベントは両方のWatcherOnPositionChanged
場合に発生します
- 最初の場所が見つかりました
- 精度が向上
- ユーザーは、定義されたしきい値を超えて物理的に移動しました
ユーザーの位置をできるだけ正確に見つけて、ユーザーが動いているかどうかを効果的に無視するウォッチャーを停止する必要があります。ただし、最後の 2 種類の更新を消す方法はないようです。
いくつかのアプローチが思い浮かびます。最初の更新は常に GPS が最後に使用されたときのキャッシュであり、2 番目は不正確な推測であり、3 番目は (少なくとも私のデバイスでは) 最終的な正確な位置のようです。これがすべてのデバイスに当てはまることに依存することは、せいぜい信頼できないようです。もう 1 つの方法は、場所が決まるまで一定時間待機することです。たとえば、10 秒待ってから最新の場所を取得します。
私の最初のアプローチは、場所が変わるたびにデータを更新して表示することでした。ただし、これは 2 つの理由で非常に面倒でした。場所は最初の数秒間で数回変化し、次にユーザーの位置が急速に変化した場合、つまり移動中の車に座っている場合、負荷が非常に煩わしくなります。
ユーザーの位置をできるだけ正確に見つけて、ウォッチャーをシャットダウンするための最良の方法は何ですか?