🐛 Handle invalid formats
This commit is contained in:
parent
1a056ce63c
commit
de488904c6
@ -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]);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user