Вы хотите, что называется «great-circle distance» между двумя точками. Это в основном кратчайший путь между двумя точками на поверхности сферы. (Земля не довольно сфера, но это достаточно близко.)
В любом случае, нужно найти угол между двумя линиями от центра сферы до каждой точки. Умножьте это на радиус сферы, и это ваше расстояние.
Одна из основных формул основана на «сферическом законе косинусов».

(Спасибо, Википедия! :))
φ и φ представляют широты двух точек, и Δλ разница между долготы. Δσ - угол между двумя точками; предполагая, что он находится в радианах, вы можете умножить его на радиус сферы, и это дает вам длину дуги, которая их соединяет.
В JavaScript:
function arc_distance(loc1, loc2) {
var rad = Math.PI/180,
earth_radius = 6371.009, // close enough
lat1 = loc1.lat * rad,
lat2 = loc2.lat * rad,
dlon = Math.abs(loc1.lon - loc2.lon) * rad,
M = Math;
return earth_radius * M.acos(
(M.sin(lat1) * M.sin(lat2)) + (M.cos(lat1) * M.cos(lat2) * M.cos(dlon))
);
}
Когда эта формула была впервые использована на компьютерах, это действительно сосала с короткими расстояниями. Но тогда цифры тоже были немного меньше. С числами в JS, которые являются 64-битными, точность намного лучше, чем некоторые люди предупреждают о. Он может легко справляться с расстояниями менее километра, и даже на расстоянии менее метра он достаточно близок к другим методам.
Это может вам помочь: http://www.movable-type.co.uk/scripts/latlong.html –
Вы помните формулу склона из алгебры? хорошие времена. используйте это, чтобы найти расстояние в графе, а затем преобразовать deg в км. – dandavis
Это хороший и верный вопрос, но он плохо спросил и ответил еще хуже. – Archer