Неправильные GPS-кординаты из Geolocation.GetLocationAsyn c в xamarin.forms - PullRequest
0 голосов
/ 21 апреля 2020

Иногда я получаю неправильные GPS-координаты от Geolocation.GetLocationAsync Я запускаю этот код

public async Task Start()
        {
            //for debugging. reporting currentGPSLocation every 30 seconds.
            _ = LocationNotifier();
            while (true)
            {
                try
                {
                    var req = new GeolocationRequest(GeolocationAccuracy.Best, new TimeSpan(0, 0, 2));
                    var location = await Geolocation.GetLocationAsync(req);
                    currentGPSLocation = location;
                    var distance = lastLocation == null ? 0 : DistanceBetweenPlaces(lastLocation, location);

                    var changedLocation = location.IsFromMockProvider == false && (lastLocation == null || distance > 30);
                    if (changedLocation)
                    {
                        lastLocation = location;
                        OnLocationChanged?.Invoke(new ZarPoint { Latitude = location.Latitude, Longitude = location.Longitude });
                    }


                }
                catch (Exception err)
                {
                    var m = err.Message;
                }
                await Task.Delay(ActiveWait);

            }
        }`

Всегда есть некоторая разница между каждой GPS-координатой, которую я получаю, но некоторые могут быть очень большими (например, 400 метров). ) Я не перемещаю тестовый телефон, он находится на моем столе при разработке и тестировании. Это открытое место на вершине горы с четким обзором на 360 градусов, поэтому не должно быть ничего, что блокирует сигналы (кроме самого дома). Вот пример расстояния между двумя регистрациями (в метрах) (я полагаю, причина двух столь больших различий заключается в том, что одна позиция GPS полностью неверна, а вторая вернулась, поэтому один отталкивается, а другой отклоняется назад)

0

422,912785756906

417,842074989524

15,432249493391

19,6929228675059

18,7292619241678

12,2693330553229

2,16521206149013

0,559777380095617

7,53262485065408

7,35738780802172

11,1812049056572

0,537354564118836

8,80990400080203

1,36443769125586

5,74674581408535

3,24729922764076

1,45157463591616

5,754499775898

Что может вызвать это? телефон хуавей. (как старый военно-морской флот мы научились никогда не доверять gps в военной ситуации, потому что им можно манипулировать, поэтому некоторые спутники могут иметь неправильную конфигурацию, поэтому gps делает неправильные вычисления?)

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