在wp8中,据我所知,有两种方法可以从Geolocator获取位置。
在我的应用程序中,我希望每5秒获取一次位置。上面哪个我使用的是否重要?或者一种方法比其他方法更适合频繁的位置捕获?
答案 0 :(得分:5)
这不是GeoLocation在WP7 / WP8上的工作方式。
Windows Phone从多个来源(GPS,GLONASS,WiFi,Cell Towers,归巢鸽等)获取位置信息,并将其缓存以备将来使用。 WP7 / WP8位置服务API的工作方式是它们总是获取新信息,并且根据您的DesiredAccuracy和您的MinimumThreshold决定将事件冒泡到托管/ WinPRT API。同样,事件是基于时间的。在Location Services API中触发的事件基于对您的特定条件有用的新数据的可用性。
如果您想基于GeoLoc每5秒执行一次操作,最好选择订阅GeoLocator / GeoCoordinateWatcher中的事件,在应用中缓存最新值,每5秒使用一次最新值。不要指望每5秒触发一次地理定位事件,也不要使用GetPositionAsync()轮询WinPRT API。 GetPositionAsync()适用于一次性地理定位采集方案,而不是跟踪方案。
答案 1 :(得分:1)
如果你想每5分钟左右获得一次这个位置,我会使用GetPositionAsync,这样你就可以在需要的时候检索数据。使用该事件可能意味着您最终会在用户移动时检索数据,这可能会导致您出现问题。