Files
Pier_v1/src/core/dms.ts
T

13 lines
461 B
TypeScript

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;
}