Как посчитать расстояние между двумя точками на карте

M2
На сайте с 11.01.2011
Offline
342
1627

Точки заданы координатами. Я накопал формулу, считает, но с погрешностями.

Пример 1:

Точка А: [55.630863, 37.601358]

Точка B: [55.644481, 37.606228]

Вот сама формула:

Вот эти точки:

Здесь 3,1 км. По формуле подсчитывается 1,5 км. Как бы на карте виден разворот, но вот учитывается ли он? Видимо, нет...

Пример 2:

Точка А: [55.644343, 37.611949]

Точка B: [55.642535, 37.612892]

Вот маршрут:

Как бы здесь 1,2 км, но по формуле выходит 200 метров. Погрешность серьёзная :) хотя там пешком, может, и будет так, но по карте пеший маршрут выходит длиной 430 м.

Вот:

Что хотелось бы:

Отображать удаленность определенных объектов от местоположения пользователя. Последнее вычисляется по IP. Если искомый объект находится от него на расстоянии +/- 500 метров, понятно, что нужен пеший маршрут. Если это расстояние измеряется километрами, нужен расчёт автомобильный. Но при этом карту хотелось бы не выводить.... т.е. показать ему километры, а уж он сам решит, как добраться.

Как лучше это сделать?

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
NothingMatters
На сайте с 12.06.2017
Offline
45
#1

Так формула и считает расстояние "по прямой". Она не знает ничего о дорогах.

Пользуй API того же OSRM, оно умеет считать расстояние по дорогам.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий