找到准确位置后停止GeoCoordinateWatcher

时间:2012-04-15 09:02:37

标签: windows-phone-7 geolocation

GeoCoordinateWatcher类允许我不断更新用户的当前位置。

时,WatcherOnPositionChanged事件将被提升
  1. 找到初始位置
  2. 准确性得到改善
  3. 用户身体移动超出定义的阈值
  4. 我需要尽可能准确地找到用户位置,然后停止观察者有效地忽略用户是否正在移动。但是,似乎没有办法消除最后两种类型的更新。

    我想到了几种方法。第一次更新始终是上次使用GPS时的缓存,第二次更新似乎是一个不准确的猜测,第三次似乎是最终的准确位置(至少在我的设备上)。根据这一点,所有设备的情况似乎都不可靠。另一种方法可能是在确定位置之前等待一段固定的时间。例如,等待10秒钟,然后取最新位置。

    我的第一种方法是每次更改位置时更新和显示数据。然而,由于两个原因,这非常麻烦。位置在前几秒变化几次,其次当用户位置快速变化时,即当坐在行驶的汽车中时,装载会变得非常烦人。

    尽可能准确地找到用户位置的最佳方法是什么,然后关闭观察者?

1 个答案:

答案 0 :(得分:1)

在您从GeoCoordinateWatcher获得的GeoCoordinate对象上,有两个属性:VerticalAccuracy和Horizo​​ntalAccuracy,它们以米为单位给出误差。只需忽略坐标,直到精度属性足够低,以满足您的需求。