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 にジャンプする場合もあります。
ここで何が間違っていますか?