Карта google показывает разное расстояние между двумя владениями

Я создаю приложение оконной формы, которое вычисляет расстояние между двумя местоположениями по их широте и долготе, используя API Google. Это работает нормально, но я заметил, что некоторое время api дает разные результаты (расстояние) для одних и тех же мест.

Пример :-

Расположение-А => Мумбаи (19.075983, 72.877655)

Расположение-B => Дели (28.704060, 77.102493)

Когда я вычисляю расстояние от место-А до место-B

decimal Distance = EmployeeTaskWorkLogManager.getDistance(string.Concat(19.075983, ", ", 72.877655), string.Concat(28.704060, ", ", 77.102493));

Это показывает Расстояние = 1423,297

И когда я вычисляю расстояние от место-B до место-А

decimal Distance = EmployeeTaskWorkLogManager.getDistance(string.Concat(28.704060, ", ", 77.102493), string.Concat(19.075983, ", ", 72.877655));

Это показывает Расстояние = 1415,239

Это код, который я использую для расчета расстояния между двумя точками,

 public static decimal getDistance(string origin, string destination)
        {
            decimal num;
            Thread.Sleep(1000);
            decimal num1 = new decimal(0);
            string[] strArrays = new string[] { "https://maps.googleapis.com/maps/api/distancematrix/json?origins=", origin, "&destinations=", destination, "&key=****" };
            string str = string.Concat(strArrays);
            JObject jObjects = JObject.Parse(EmployeeTaskWorkLogManager.fileGetContents(str));
            try
            {
                num1 = (decimal)jObjects.SelectToken("rows[0].elements[0].distance.value");
                num = num1 / new decimal(1000);
            }
            catch
            {
                num = num1;
            }
            return num;
        }

Я проверил каждую строку своего кода, но не могу понять, почему возникает эта разница.

Вы проверяете это расстояние на картах Google

user10176456 10.08.2018 15:11

Да, теперь я проверил карты Google, и я шокирован, карты Google также показывают разницу. Кто-нибудь знает, почему карты Google показывают эту разницу?

Aakash Singh 10.08.2018 15:20

Вы не должны размещать свой личный ключ API Google в своем коде в Интернете ...

Tian van Heerden 10.08.2018 16:13
0
3
625
1

Ответы 1

API матрицы расстояний Google Maps не рассчитывает расстояние по прямой или по большой окружности между двумя точками. Вместо этого он возвращает расстояние в соответствии с режимом движения (который вы не указали в своем вызове API, поэтому по умолчанию используется driving). Подумайте об этом: вы не сможете пройти расстояние точный в обоих направлениях, и разница будет тем заметнее, чем длиннее путешествие и чем больше потребуется изменений маршрута. Это будет зависеть от съезда с съезда с автомагистрали (недоступно на определенных перекрестках в обоих направлениях), улиц с односторонним движением и т. д.

Таким образом, результат такой, как ожидалось.

Источник: API матрицы расстояний Google Maps

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