Как вычислить расстояние между двумя координатами широты и долготы
Компьютеры / Программирование / javascript (джаваскрипт)
Тэги: javascript полезные скрипты javascript
Тэги: javascript полезные скрипты javascript
📅3-05-2018 👁443
Если вы получили широту и долготу используя API google man -> navigator.geolocation.getCurrentPosition то с помощью математических формул можно вычислить расстояние между двумя точками по прямой (не по дорогам общего назначения):
var meters = computeDistance (pos.coords,prevCoords)*1000; // в переменной meters будет дистанция между текущими pos.coords и прошлыми prevCoords координатами в метрах
function computeDistance(startCoords, destCoords) {
var startLatRads = degreesToRadians(startCoords.latitude);
var startLongRads = degreesToRadians(startCoords.longitude);
var destLatRads = degreesToRadians(destCoords.latitude);
var destLongRads = degreesToRadians(destCoords.longitude);
var Radius = 6371; // радиус планеты Земля в км
var distance = Math.acos(Math.sin(startLatRads) * Math.sin(destLatRads) +
Math.cos(startLatRads) * Math.cos(destLatRads) *
Math.cos(startLongRads - destLongRads)) * Radius;
return distance;
}
function degreesToRadians(degrees) {
radians = (degrees * Math.PI)/180;
return radians;
}
Оставить свой ответ: