Windows Phone 8 Geolocator возвращает поддельное местоположение на эмуляторе

Я пытался показать свое местоположение в приложении xaml windows phone 8. Но всегда, когда я пытаюсь найти свое текущее местоположение, я получаю поддельное местоположение Microsoft, даже с приложением карт по умолчанию. Например, этот код выше всегда возвращает одинаковую широту и долготу:

Geolocator locator = new Geolocator();
locator.DesiredAccuracy = PositionAccuracy.High;
Geoposition position = await locator.GetGeopositionAsync();
LatitudeValue.Text = position.Coordinate.Latitude.ToString("0.00");
LongitudeValue.Text = position.Coordinate.Longitude.ToString("0.00");

4 ответа

Решение

Эмулятор Windows Phone 8 имеет небольшую панель инструментов в правом верхнем углу. Нижняя кнопка представляет собой двойной шеврон (например, ">>") - если вы щелкнете по ней, появится "Дополнительные инструменты", а одна из вкладок - "Расположение". Вы можете дважды щелкнуть карту, чтобы указать свое местоположение в эмуляторе, а также записать и воспроизвести пройденный маршрут.

Если я добавлю метку на карту, а затем вызову

await locator.GetGeopositionAsync();

Он всегда возвращает координаты Microsoft (47.643318, -122.141937), независимо от того, какое текущее местоположение я выбрал.

Это похоже на ошибку или я что-то упустил? Кто-то еще испытывает это?

Что касается ошибки расположения Microsoft HQ, то есть обходной путь.

Если вы установите:

geoLocator = new Geolocator
                             {
                                 DesiredAccuracy = PositionAccuracy.High
                             };

Он покажет расположение, которое вы настроили в эмуляторе дополнительных инструментов.

Эмулятор всегда возвращает поддельное местоположение. Как упомянуто в gregstoll, вы можете контролировать, в каком "поддельном" месте следует сообщать. Там нет никакого способа, чтобы получить истинное местоположение с помощью встроенных API.

Другие вопросы по тегам