南纬度分秒准确性
This commit is contained in:
@ -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 + '"'; // 返回度分秒格式
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user