過濾String 、Boolean 、Undefined、Null 類型,將用戶輸入值返回處理成Number類型且保留6位
1 /* 2 * 處理經緯度數據 小數點保留六位 3 * 經度范圍 -180 ~ 180 4 * 緯度范圍 -90 ~ 90 5 * 超出方位 返回0度 6 * 7 */ 8 function longLatitude(longLatVal, isLongitude) { 9 //處理NaN類型 10 const longlat = parseFloat(longLatVal); 11 if (isNaN(longlat)) { 12 return 0; 13 } 14 15 // 經度范圍 -180 ~ 180 ;緯度范圍 -90 ~ 90 16 const range = isLongitude ? 180 : 90; 17 if (Math.abs(longlat) > range) { 18 return 0 19 } 20 21 //小數點保留六位 22 if (longlat.toString().indexOf('.') > 0) { 23 const longlatsplit = longLatVal.toString().split('.'); 24 if (longlatsplit.length >= 2) { 25 return parseFloat(longlatsplit[0] === "" ? 0 : longlatsplit[0]) + parseFloat("." + longlatsplit[1].slice(0, 6)); 26 } 27 } 28 29 return longlat; 30 } 31 // 下列以經度測試輸出值 32 longLatitude(-10, true) //0 33 longLatitude('非number', true) //0 34 longLatitude('0.001', true) //0.001 35 longLatitude('001.001', true) //1.001 36 longLatitude('001.001.0001', true) //1.001 37 longLatitude('001.001000000.0001', true) //1.001