UNPKG

ok-tools

Version:

My personal JS tools and utilities

28 lines 962 B
"use strict"; 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