странные результаты при расчете скорости WP7 GPS - PullRequest
0 голосов
/ 04 февраля 2012

Я пытаюсь самостоятельно вычислить скорость с помощью эмулятора GPS телефона Windows от Коэна.

  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 голосов
/ 06 февраля 2012

GPS имеет ограниченную точность. Если вы получаете 20 исправлений в секунду и перемещаетесь, скажем, на 10 м / с, то разница в положении составляет около 0,5 м между двумя исправлениями, что обычно (в зависимости от аппаратного обеспечения, прямой видимости спутников и количества спутников, доступных для вашего GPS) ниже точности GPS.

Попробуйте использовать исправление каждые несколько секунд или сохраняйте очередь (вы можете использовать круговой массив для эффективной реализации очереди) исправлений и используйте среднюю скорость. Я бы предложил комбинацию обоих.

...