2012-04-15 38 views
2

GeoCoordinateWatcher類允許我不斷更新用戶當前位置。該WatcherOnPositionChanged事件將提高雙方在找到準確位置後停止GeoCoordinateWatcher

  1. 初始位置中找到
  2. 的精度提高
  3. 物理移動超出了定義的閾值

我需要找到用戶位置的用戶儘可能準確,然後停止觀察者有效地忽略用戶是否正在移動。但是,似乎無法熄滅最後兩種更新。

想到幾種方法。第一次更新始終是上次使用GPS時的緩存,第二次更新似乎是不準確的猜測,第三次更新似乎是最終準確的位置(至少在我的設備上)。根據這一點,所有設備都是如此,看起來似乎不可靠。另一種方法可能是在安置該地點之前等待一段固定的時間。例如等待10秒鐘,然後取最新的位置。

我的第一種方法是每次更改位置時更新和顯示數據。然而,這非常麻煩,原因有兩個。位置在前幾秒改變幾次,其次當用戶位置快速改變時,即坐在移動的汽車中時,加載會變得非常煩人。

什麼是儘可能準確地查找用戶位置,然後關閉監視器的最佳方法?

回答

1

在您從GeoCoordinateWatcher獲得的GeoCoordinate對象上,有兩個屬性:VerticalAccuracy和Horizo​​ntalAccuracy,它們以米爲單位給出錯誤magin。只要忽略座標,直到精度屬性足夠低以滿足您的需求。

+0

這還不夠。 GPS不會繼續改進。它提高到某個點然後停止。有時這是一個6/6米的精度,有時它的準確度要低得多。所以如果我等待高精度,我可能會永遠等待。 – 2012-04-18 08:07:57

+0

然後啓動一個後臺線程,並讓它休眠儘可能多的時間,因爲您已準備好等待。在那之後,如果你還沒有足夠精確的位置,拿走最後一個。我不相信有一種方法可以預測GPS是否能夠進行精確的修復,但我不明白這是可能的。 – 2012-04-18 08:11:45