From de488904c6b4acfa11af206e5f2d58bef783711c Mon Sep 17 00:00:00 2001 From: itskovacs Date: Thu, 31 Jul 2025 19:24:50 +0200 Subject: [PATCH] :bug: Handle invalid formats --- src/src/app/shared/latlng-parser.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/src/app/shared/latlng-parser.ts b/src/src/app/shared/latlng-parser.ts index 638fa8c..894a285 100644 --- a/src/src/app/shared/latlng-parser.ts +++ b/src/src/app/shared/latlng-parser.ts @@ -26,9 +26,15 @@ export function formatLatLng(num: number): string { 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] - const dec = str.match(patternDEC); + const dec = value.match(patternDEC); if (dec) { const lat = parseFloat(dec[1]); 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) { let lat = parseFloat(dd[1]); let lng = parseFloat(dd[3]); @@ -46,14 +52,14 @@ export function checkAndParseLatLng(str: string): [number, number] | undefined { return [lat, lng]; } - const dms = str.match(patternDMS); + const dms = value.match(patternDMS); if (dms) { const lat = _dmsToDecimal(+dms[1], +dms[2], +dms[3], dms[4]); const lng = _dmsToDecimal(+dms[5], +dms[6], +dms[7], dms[8]); return [lat, lng]; } - const dmm = str.match(patternDMM); + const dmm = value.match(patternDMM); if (dmm) { const lat = _dmmToDecimal(+dmm[1], +dmm[2], dmm[3]); const lng = _dmmToDecimal(+dmm[4], +dmm[5], dmm[6]);