Я пытаюсь разработать приложение, которое должно быть чем-то вроде игры. У пользователя будет несколько мест в городе, и он должен будет что-то сделать в каждом месте. Чтобы отслеживать позицию пользователя, я попытался использовать геолокацию со следующим кодом:
Geolocator geolocator = new Geolocator();
//geolocator.DesiredAccuracy = Windows.Devices.Geolocation.PositionAccuracy.High;
geolocator.DesiredAccuracyInMeters = 50;
try
{
Geoposition geoposition = await geolocator.GetGeopositionAsync(TimeSpan.FromMilliseconds(500), TimeSpan.FromSeconds(1));
textLatitude.Text = "Latitude: " + geoposition.Coordinate.Latitude.ToString("0.0000000000");
textLongitude.Text = "Longitude: " + geoposition.Coordinate.Longitude.ToString("0.0000000000");
textAccuracy.Text = "Accuracy: " + geoposition.Coordinate.Accuracy.ToString("0.0000000000");
}
Используя следующий способ для получения координат, я попытался проверить, правильно ли устройство правильно позиционирует мою позицию с помощью следующего кода:
if( Math.Abs(geoposition.Coordinate.Latitude - 45.3285) < 0.001 ){
if (Math.Abs(geoposition.Coordinate.Longitude - 14.4474) < 0.001)
{
txt.Text = "KONT";
}
}
Проблема в том, что точность местоположения действительно мала, если я попытаюсь использовать более точные координаты, она никогда не получит одинаковые координаты, и с этим кодом точность действительно плохая (она может провалиться даже на 300 метров).
У кого-нибудь есть идея, как получить более надежное место или другой способ исправить это?