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.