不移动时从WP8 Geolocator获取速度值

时间:2014-07-21 07:00:01

标签: c# windows-phone-8 geolocation

我正在使用WP8中的Geolocator类来构建一个显示当前速度的小应用程序。我已将Accuracy设置为High和MovementThreshold为0.1米。目前,我正在使用地理定位器的PositionChanged事件来移动时获得速度。

问题是,当我停止移动时,没有触发PositionChanged事件,因此速度大部分时间不是0,当它应该为0.有时它有效,有时不行,我想它有一些东西到停止在阈值之间的某个地方。

我尝试的另一个可能性是,不使用PositionChanged并使用计时器每秒使用GetGeopositionAsync轮询当前位置以更新速度。这似乎工作得更好,但我想这是更耗电的方法,因为无论是否必要,我都会获得该职位。

那么无论是否移动,获得当前速度的最佳方法是什么?它甚至可以用PositionChanged完成吗?

1 个答案:

答案 0 :(得分:0)

我猜你没有理想的解决方案。

在你的情况下,我会使用DispatcherTimer,它会每秒触发一次(例如)。 您可以使用您提到的计时器,但不是每次都调用GetGeopositionAsync,而是可以使用Geolocator实例来获取当前速度。

我猜速度不仅会在触发PositionChanged时更新,这样,您可以获得更新的速度,而不会消耗GetGeopositionAsync的资源。