Xamarin / C # / GPS: странное измерение расстояния - PullRequest
0 голосов
/ 08 января 2019

Мне трудно понять, как правильно получить расстояния между двумя Location с в Ксамарине. По крайней мере, я постоянно получаю неправильные результаты, согласно всемогущему Google.

Этот код объясняет проблему.

    public void OnLocationChanged(Location location)
    {
        // Longitude/Latitude of Tower Bridge.
        location.Longitude = 51.5053446;
        location.Latitude = -0.0765396;

        foreach (var store in this.stores)
        {
            if (store.DistanceView != null)
            {
                Location store_loc = new Location(location.Provider);
                //store_loc.Longitude = double.Parse(store.GPSN);
                //store_loc.Latitude = double.Parse(store.GPSW);

                // Longitude/Latitude of Big Ben.
                store_loc.Longitude = 51.5005747;
                store_loc.Latitude = -0.1247025;

                var distance = location.DistanceTo(store_loc);

                // Google Maps ("measure distance") says 3.44km.
                // Xamarin (variable "distance") says 5351.983 meters.

                store.DistanceView.Text = distance.ToString();
            }
        }
    }

Фактические местоположения, с которыми я работаю, различаются (по соображениям конфиденциальности), но ошибка измерения аналогична, поскольку я получаю результат, который не в два раза выше, чем измеренный Google Maps, но где-то в окрестности. В любом случае, приведенные выше измерения должны совпадать, а они - нет.

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