我正在尝试使用 Cohen 的 Windows phone GPS Emulator 自己计算速度。
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 的结果不稳定。有时速度是 10m/s,有时会跳到 20m/s。
我在这里做错了什么?