export type Coordinates = [number, number]; export const calculateHaversineDistance = ( [lat1, lon1]: Coordinates, [lat2, lon2]: Coordinates ): number => { const R = 6371; // Radius of the Earth in kilometers const dLat = degreesToRadians(lat2 - lat1); const dLon = degreesToRadians(lon2 - lon1); const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(degreesToRadians(lat1)) * Math.cos(degreesToRadians(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2); const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); const distance = R * c; // Distance in kilometers return distance; }; const degreesToRadians = (degrees: number): number => degrees * (Math.PI / 180);