ok-tools
Version:
My personal JS tools and utilities
28 lines • 962 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.calculateDistance = void 0;
function toRadians(degrees) {
return degrees / 180 * Math.PI;
}
/**
* @param a
* @param b
* @return number Distance in meters
*/
function calculateDistance(a, b) {
if (!a || !b || typeof a.lat !== 'number' || typeof a.lng !== 'number' || typeof b.lat !== 'number' || typeof b.lng !== 'number') {
return NaN;
}
var R = 6371e3;
var lat1 = toRadians(a.lat);
var lat2 = toRadians(b.lat);
var deltaLat = (lat2 - lat1);
var deltaLng = toRadians(b.lng - a.lng);
var stepA = Math.sin(deltaLat / 2) * Math.sin(deltaLat / 2) +
Math.cos(lat1) * Math.cos(lat2) *
Math.sin(deltaLng / 2) * Math.sin(deltaLng / 2);
var c = 2 * Math.atan2(Math.sqrt(stepA), Math.sqrt(1 - stepA));
return R * c;
}
exports.calculateDistance = calculateDistance;
//# sourceMappingURL=calculate-distance.js.map