Местоположение GeoCoordinateWatcher не возвращает скорость. NaN вместо - PullRequest
1 голос
/ 03 марта 2011

Я экспериментировал с получением показаний с GPS на моем wp7.

Я использую код, очень похожий на пример, приведенный здесь: Получение координат GPS на телефоне Windows 7

У меня есть 2 текстовых блока на странице.Один показывает скорость из Position.Location.Speed, а другой показывает метку времени из Position.Location.TimeStamp.Это вызвано событием watcher_PositionChanged.

Я замечаю, что событие запускается каждую секунду или около того, поскольку отметка времени обновляется, чтобы отразить это.Я также читаю состояние GPS как «готово» (первая пара показаний «Нет данных»). Однако значение скорости продолжает отображать NaN.

Я загрузил этот код на физическое устройство (LG Optimus 7) и поехал по улице с телефоном на приборной панели для проверки.

Ответы [ 2 ]

0 голосов
/ 22 марта 2014

Попробуйте сделать так:

void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
    // you cannot change the UI in this function -> you have to call the UI Thread
    Deployment.Current.Dispatcher.BeginInvoke(() => ChangeUI(e));
}
void ChangeUI(GeoPositionChangedEventArgs<GeoCoordinate> e)
{
    // do magic 
}
0 голосов
/ 05 марта 2011

ОК, я понял, что GeoCoordinateWatcher работает в потоке пользовательского интерфейса, и он работал немного .. странно.Перемещение этого в отдельную ветку решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...