1

我有下面的代碼,每0.5個氣泡就會觸發GeoCoordinateWatcher PositionChanged事件。它可能會更少。但那就是我的要求。windows phone中的GeoCoordinateWatcher在給定的時間間隔內不觸發事件

問題是當我用手機行走時,代碼每隔0.5米就不會觸發事件,而是隨機在0.5米後觸發事件。有時當我快速移動時,它會立即觸發幾個事件。

任何人都可以幫助我確保它準確地每0.5米觸發positionchanged事件。

  watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default); 
      if (watcher.Permission == GeoPositionPermission.Granted) 
      { 
       watcher.MovementThreshold = 0.5;//in meters 
      } 

      watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged); // PositionChanged events occur whenever your position changes  
      watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(watcher_OnStatusChanged); 
      watcher.Start(); 

回答

0

我不能完全肯定,但我不知道爲什麼你使用下面的代碼:

如果(watcher.Permission == GeoPositionPermission.Granted) {
守望者。 MovementThreshold = 0.5; //以米爲單位 }

爲什麼您需要檢查觀察者的權限?爲什麼不繼續並立即定義MovementThreshold?這可能有助於提高數據的速度。此外,您將GeoPositionAccuracy設置爲默認。如果你想讓它更準確地射擊,請使用GeoPositionAccuracy.High

1

GeoPositionAccuracy應該一定設置爲高。我相信Default將使用蜂窩/無線網絡來確定位置,而High將使用手機上的GPS。默認主要用於您只需查找一般位置的情況。

0

而且,我敢肯定有,你也可以執行以下操作以獲取的水平和垂直精度,數據的細節:

e.Position.Location.HorizontalAccuracy.ToString(); 
e.Position.Location.VerticalAccuracy.ToString(); 
相關問題