0

我的Wp7(芒果)應用程序需要知道用戶的位置才能搜索數據庫中最近的對象。但是我想在歡迎屏幕上顯示結果,所以我需要儘快找到我的位置。我寫了一個代碼,開始GeoCoordinateWatcher(在高精度和最小的閾值),並在第一次發射停止它,並將位置發送到Web服務,它返回有問題的對象。GeoCoordinateWatcher需要多少次火災?

在我測試之後,我去了現場,到鎮的另一邊。我開始了它,併爲大家的娛樂表現出了完全錯誤的結果 - 我知道爲什麼:它仍然認爲我在家!

要更新GPS需要多長時間? 我怎麼知道我終於得到了我目前的位置?在停止之前我應該​​允許GeoCoordinateWatcher發射多少次?

回答

3

退房這裏的答案:

http://awkwardcoder.blogspot.com/2011/09/geo-location-on-wp7-dont-trust-first.html

基本上,繼續要求更新,直到一個是從你開始要求它們的範圍內。

in PositionChanged 

if ((DateTime.Now - e.Position.TimeStamp.DateTime) < LocationTimeout) 
    { 
     //recent enough. 
    } 
+0

這味道非常好。我會盡快結帳! – TDaver 2012-01-18 18:48:41

+0

確實!有趣的解決方案 – Ku6opr 2012-01-18 20:45:46

+0

@ Ku6opr昨天剛剛有這個確切的問題,所以這個問題是在我的舌頭:) – 2012-01-18 22:49:08

0

您的StatusChanged事件用於處理舊用戶位置(在家中)。當設備狀態準備就緒 - 您有當前位置(但可能不準確)。因此,使用HorizontalAccuracy如果需要高精度位置;)

+0

是的,但第一個(少數)StatusChanged事件仍將包含舊位置!我如何知道它已更新? – TDaver 2012-01-18 14:25:09