计算WP7 GPS速度时的奇怪结果

时间:2012-02-03 20:45:28

标签: windows-phone-7 gps windows-phone-7-emulator

我尝试使用科恩的Windows手机GPS模拟器自己计算速度。

  void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
  {
    DateTime curTime       = DateTime.Now;
    double curDistance     = e.Position.Location.GetDistanceTo(lastKnownPosition);
    TimeSpan curTimeOffset = curTime - lastRecvTime;
    double curSpeed        = curDistance / curTimeOffset.TotalSeconds; 

当LastKnownPosition表示最后一个GeoCoordinate时,lastRecvTime也是如此。 问题在这里我得到关于curSpeed的不稳定结果。有时候速度是10米/秒,有时会跳到20米/秒。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

GPS精度有限。如果你每秒获得20次修复并移动 - 比如10m / s比两个修正之间的位置差异大约0.5m,这通常是(取决于硬件,卫星的视线和GPS可用的卫星数量)低于GPS的准确度。

尝试每隔几秒使用一次修复或保留一个队列(您可以使用循环数组来有效地实现队列)修复并使用平均速度。我建议将两者结合起来。