gc-wing/apps/web/src/shared/lib/geo/haversineNm.ts
2026-02-15 11:22:38 +09:00

13 lines
439 B
TypeScript

export function haversineNm(lat1: number, lon1: number, lat2: number, lon2: number) {
const R = 3440.065; // nautical miles
const dLat = ((lat2 - lat1) * Math.PI) / 180;
const dLon = ((lon2 - lon1) * Math.PI) / 180;
const a =
Math.sin(dLat / 2) ** 2 +
Math.cos((lat1 * Math.PI) / 180) *
Math.cos((lat2 * Math.PI) / 180) *
Math.sin(dLon / 2) ** 2;
return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
}