0

据我所知,在 wp8 中,有两种方法可以从 Geolocator 获取位置。

  1. 监听 PositionChanged 事件
  2. 使用 GetPositionAsync

在我的应用程序中,我希望每 5 秒显示一次位置。我使用上述哪个有关系吗?还是一种方法比另一种更适合频繁的位置捕获?

4

2 回答 2

5

这不是 GeoLocation 在 WP7/WP8 上的工作方式。

Windows Phone 从多个来源(GPS、GLONASS、WiFi、手机信号塔、信鸽等)获取位置信息并将其缓存以备将来使用。WP7/WP8 位置服务 API 的工作方式是它们始终获取新信息,并且取决于您的 DesiredAccuracy 和您的 MinimumThreshold 将决定将事件冒泡到托管/WinPRT API。同样,事件是基于时间的。位置服务 API 中触发的事件基于对您的特定标准有用的新数据的可用性。

如果您想基于 GeoLoc 每 5 秒执行一次操作,您最好订阅来自 GeoLocator/GeoCoordinateWatcher 的事件,在您的应用程序中缓存最新值,并且每 5 秒使用最新值。不要指望每 5 秒触发一次地理定位事件,也不要使用 GetPositionAsync() 轮询 WinPRT API。GetPositionAsync() 用于一次性地理位置获取场景,而不是跟踪场景。

于 2013-02-12T01:04:43.383 回答
1

如果您想每 5 分钟左右获取一次位置,我会使用 GetPositionAsync,因为这将允许您在需要时检索数据。使用该事件可能意味着您最终会在用户移动时检索数据,这可能会给您带来问题。

于 2013-02-11T15:02:18.540 回答