在wp8中获得位置的两种方法,这是最好的

本文关键字:方法 两种 位置 wp8 | 更新日期: 2023-09-27 17:58:51

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

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

在我的应用程序中,我希望每隔5秒得到一次位置。我用上面哪一个重要吗?还是一种方法比另一种更适合频繁的位置捕获?

在wp8中获得位置的两种方法,这是最好的

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

Windows Phone从多个来源(GPS、GLONASS、WiFi、蜂窝塔、信鸽等)获取位置信息,并将其缓存以备将来使用。WP7/WP8定位服务API的工作方式是,它们总是获得新信息,并且根据您的DesiredAccurcy和MinimumThreshold,将决定将事件添加到托管/WinPRT API中。同样,事件是基于时间的。在定位服务API中触发的事件基于新数据的可用性,这些新数据对您的特定条件有用。

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

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