🐛 Handle invalid formats

This commit is contained in:
itskovacs 2025-07-31 19:24:50 +02:00
parent 1a056ce63c
commit de488904c6

View File

@ -26,9 +26,15 @@ export function formatLatLng(num: number): string {
return num.toFixed(Math.min(decimals, 5)); return num.toFixed(Math.min(decimals, 5));
} }
export function checkAndParseLatLng(str: string): [number, number] | undefined { export function checkAndParseLatLng(
value: string | number,
): [number, number] | undefined {
if (value.constructor != String) {
return;
}
// Parse DMS, DD, DDM to decimal [Lat, Lng] // Parse DMS, DD, DDM to decimal [Lat, Lng]
const dec = str.match(patternDEC); const dec = value.match(patternDEC);
if (dec) { if (dec) {
const lat = parseFloat(dec[1]); const lat = parseFloat(dec[1]);
const lng = parseFloat(dec[2]); const lng = parseFloat(dec[2]);
@ -37,7 +43,7 @@ export function checkAndParseLatLng(str: string): [number, number] | undefined {
} }
} }
const dd = str.match(patternDD); const dd = value.match(patternDD);
if (dd) { if (dd) {
let lat = parseFloat(dd[1]); let lat = parseFloat(dd[1]);
let lng = parseFloat(dd[3]); let lng = parseFloat(dd[3]);
@ -46,14 +52,14 @@ export function checkAndParseLatLng(str: string): [number, number] | undefined {
return [lat, lng]; return [lat, lng];
} }
const dms = str.match(patternDMS); const dms = value.match(patternDMS);
if (dms) { if (dms) {
const lat = _dmsToDecimal(+dms[1], +dms[2], +dms[3], dms[4]); const lat = _dmsToDecimal(+dms[1], +dms[2], +dms[3], dms[4]);
const lng = _dmsToDecimal(+dms[5], +dms[6], +dms[7], dms[8]); const lng = _dmsToDecimal(+dms[5], +dms[6], +dms[7], dms[8]);
return [lat, lng]; return [lat, lng];
} }
const dmm = str.match(patternDMM); const dmm = value.match(patternDMM);
if (dmm) { if (dmm) {
const lat = _dmmToDecimal(+dmm[1], +dmm[2], dmm[3]); const lat = _dmmToDecimal(+dmm[1], +dmm[2], dmm[3]);
const lng = _dmmToDecimal(+dmm[4], +dmm[5], dmm[6]); const lng = _dmmToDecimal(+dmm[4], +dmm[5], dmm[6]);