export interface LatLng { lat: number; lng: number; } export function haversineKm(a: LatLng, b: LatLng): number { const R = 6371; const dLat = (b.lat - a.lat) * Math.PI / 180; const dLng = (b.lng - a.lng) * Math.PI / 180; const sinLat = Math.sin(dLat / 2); const sinLng = Math.sin(dLng / 2); const h = sinLat * sinLat + Math.cos(a.lat * Math.PI / 180) * Math.cos(b.lat * Math.PI / 180) * sinLng * sinLng; return R * 2 * Math.atan2(Math.sqrt(h), Math.sqrt(1 - h)); } export function formatDistance(km: number): string { const mi = km * 0.621371; if (mi < 0.1) return "here"; if (mi < 1) return `${(mi).toFixed(1)} mi`; return `${Math.round(mi)} mi`; }