Сколько раз должен срабатывать GeoCoordinateWatcher? - PullRequest
0 голосов
/ 18 января 2012

Моему приложению Wp7 (Mango) необходимо знать местоположение пользователя для поиска ближайшего объекта в базе данных.Но я хочу отобразить результат на экране приветствия, поэтому мне нужно как можно скорее указать свое местоположение.Я написал код, который запускает GeoCoordinateWatcher (с высокой точностью и минимальным порогом), и при первом срабатывании останавливает его и отправляет местоположение в веб-сервис, который возвращает рассматриваемый объект.

После того, как я проверил это, я пошел, чтобы представить это, в другой конец города.Я начал это, и для всеобщего удовольствия это показало совершенно неправильный результат - я знаю почему: он все еще думал, что я был дома!

Сколько времени занимает обновление GPS? Как я узнаю, что наконец-то получил свое текущее местоположение?Сколько раз я должен позволять GeoCoordinateWatcher выстрелить перед его остановкой?

Ответы [ 2 ]

3 голосов
/ 18 января 2012

Проверьте ответ здесь:

http://awkwardcoder.blogspot.com/2011/09/geo-location-on-wp7-dont-trust-first.html

Как правило, продолжайте запрашивать обновления, пока они не окажутся в диапазоне, начиная с того момента, когда вы начали их запрашивать.

in PositionChanged

if ( (DateTime.Now - e.Position.TimeStamp.DateTime) < LocationTimeout)
  {
         //recent enough.
  } 
0 голосов
/ 18 января 2012

У вас есть событие StatusChanged для обработки, например, местоположение старого пользователя (дома). Когда статус устройства готов - у вас есть текущее местоположение (но оно может быть неточным). Так что, используйте HorizontalAccuracy, если вам нужна высокоточная позиция;)

...