2

このGeoCoordinateWatcherクラスを使用すると、ユーザーの現在の場所を継続的に更新できます。イベントは両方のWatcherOnPositionChanged場合に発生します

  1. 最初の場所が見つかりました
  2. 精度が向上
  3. ユーザーは、定義されたしきい値を超えて物理的に移動しました

ユーザーの位置をできるだけ正確に見つけて、ユーザーが動いているかどうかを効果的に無視するウォッチャーを停止する必要があります。ただし、最後の 2 種類の更新を消す方法はないようです。

いくつかのアプローチが思い浮かびます。最初の更新は常に GPS が最後に使用されたときのキャッシュであり、2 番目は不正確な推測であり、3 番目は (少なくとも私のデバイスでは) 最終的な正確な位置のようです。これがすべてのデバイスに当てはまることに依存することは、せいぜい信頼できないようです。もう 1 つの方法は、場所が決まるまで一定時間待機することです。たとえば、10 秒待ってから最新の場所を取得します。

私の最初のアプローチは、場所が変わるたびにデータを更新して表示することでした。ただし、これは 2 つの理由で非常に面倒でした。場所は最初の数秒間で数回変化し、次にユーザーの位置が急速に変化した場合、つまり移動中の車に座っている場合、負荷が非常に煩わしくなります。

ユーザーの位置をできるだけ正確に見つけて、ウォッチャーをシャットダウンするための最良の方法は何ですか?

4

1 に答える 1

1

GeoCoordinateWatcherから取得するGeoCoordinateオブジェクトには、VerticalAccuracyとHorizo​​ntalAccuracyの2つのプロパティがあり、メートル単位でエラーの大きさを示します。精度プロパティがニーズに対して十分に低くなるまで、座標を無視してください。

于 2012-04-15T10:48:57.460 に答える