2013-08-26 2 views
0

Я разрабатываю приложение для отслеживания спортивных состязаний в Windows, которое использует GPS-датчики для расчета расстояния, пройденного бегуном, для этого я использую класс геокоординатного ватчера, устанавливая порог движения до 100. Но я нахожу свой приложение дает значения расстояния, даже если устройство остается неподвижным. Мое приложение должно показывать расстояние только тогда, когда устройство меняет свое положение. Я нашел ту же ошибку в приложениях, которые находятся на рынке, скажите, пожалуйста, где я делаю неправильно?
Мой код.Вопросы точности GPS

watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); 
        watcher.MovementThreshold = 150; 
        watcher.PositionChanged += watcher_PositionChanged; 
        watcher.Start(); 
{ 
      latitudeCurrent = e.Position.Location.Latitude; 
      longitudeCurrent = e.Position.Location.Longitude; 
      if (stepCounter == 0) 
      { 
       latitudePrevious = latitudeCurrent; 
       longitudePrevious = longitudeCurrent; 
       distanceTravelled += Math.Round(Calculate(latitudePrevious,longitudePrevious,latitudeCurrent,longitudeCurrent),2); 
       txbDistanceTravelled.Text = distanceTravelled.ToString(); 
       txbCalories.Text=string.Format("{0:f0}", distanceTravelled * 65); 
       stepCounter++; 
       var millisPerKilometer = (distanceTravelled) * (System.Environment.TickCount - _previousPositionChangeTick); 
       txbPace.Text = TimeSpan.FromMilliseconds(millisPerKilometer).ToString(@"mm\:ss"); 
       double hrs = counterTick/3600; 
       if (!double.IsNaN((distanceTravelled/hrs))) 
       { 
        txbSpeed.Text = (distanceTravelled/hrs).ToString(); 
       } 
       else 
       { 
        txbSpeed.Text = "0"; 
       } 
} 
} 
+0

Вы тестируете устройство на улице или в помещении на WiFi? Если вы находитесь в помещении, скорее всего, вы не используете GPS, так что теряете уровень точности и переключаетесь на ячейки или Wi-Fi. Возможно, включена некоторая зарегистрированная информация об отладке и выведет устройство на прогулку на улицу и посмотрим, какие результаты вы получите. – LewisBenge

ответ

0

Вы разрабатываете приложение для Windows Phone 7 или Windows Phone 8? Если вы разрабатываете для более поздней версии, вам нужно использовать новый класс Geolocator, а не GeoCoordinateWatcher.

Кроме того, поскольку LewisBenge сказал, что если вы тестируете В этом помещении вы можете получить позиции WiFi или даже сотовые данные. Было бы лучше протестировать на открытом воздухе.

0

Ваш GPS-сигнал может быть слабым в месте, где вы тестируете. Попробуйте в открытом месте.

Смежные вопросы