南纬度分秒准确性

This commit is contained in:
zh
2025-11-04 11:30:29 +08:00
parent a1be89ade7
commit ba646c1fac

View File

@ -1021,18 +1021,26 @@ class Proj {
function tenToThePowerOfN(n) { function tenToThePowerOfN(n) {
return Math.pow(10, n); return Math.pow(10, n);
} }
let isF = false
if(degrees<0) {
isF = true
}
degrees = Math.abs(degrees)
let d = Math.floor(degrees); // 获取整度 let d = Math.floor(degrees); // 获取整度
let pow1 = tenToThePowerOfN(getDecimalPlaces(degrees)) let pow1 = tenToThePowerOfN(getDecimalPlaces(degrees))
let x = Math.floor((degrees - d) * pow1 * 60) / pow1; // 获取秒3600分之一度 let x = Math.floor((degrees - d) * pow1 * 60) / pow1; // 获取秒3600分之一度
let m = Math.floor(x); let m = Math.floor(x);
if(isF) {
d = -d
}
let pow = tenToThePowerOfN(getDecimalPlaces(x)) let pow = tenToThePowerOfN(getDecimalPlaces(x))
let s = Math.floor((x - m) * pow) / pow * 60; // 获取秒3600分之一度 let s = Math.floor((x - m) * pow) / pow * 60; // 获取秒3600分之一度
if (isDM) { if (isDM) {
return d + "°" + Number(x.toFixed(4)) + "'"; // 返回度分格式 return d + "°" + (Math.floor(x * 10000) / 10000) + "'"; // 返回度分格式
} }
else { else {
return d + "°" + m + "'" + s.toFixed(2) + '"'; // 返回度分秒格式 return d + "°" + m + "'" + Math.floor(s * 100) / 100 + '"'; // 返回度分秒格式
} }
} }