const DMS = /(\d+(?:\.\d+)?)°\s*(\d+)'\s*(\d+(?:\.\d+)?)"/; /** Parses a degree-minute-second string such as ` 75°56'55.9"` into decimal degrees. Returns null when invalid. */ export function parseDms(text: string): number | null { const m = DMS.exec(String(text)); if (!m) return null; const deg = Number(m[1]); const min = Number(m[2]); const sec = Number(m[3]); if (min >= 60 || sec >= 60) return null; return deg + min / 60 + sec / 3600; }