diff --git a/src/utils/map.js b/src/utils/map.js index 6c80e69..fdec3ab 100644 --- a/src/utils/map.js +++ b/src/utils/map.js @@ -5,10 +5,10 @@ * @returns */ export function decimalToDms(decimal, isLongitude = true) { - const degrees = Math.floor(decimal); - const decimalMinutes = (decimal - degrees) * 60; - const minutes = Math.floor(decimalMinutes); - const seconds = parseInt((decimalMinutes - minutes) * 60); + const absoluteValue = Math.abs(decimal) + const degree = Math.floor(absoluteValue) + const minute = Math.floor((absoluteValue - degree) * 60); + const second = Math.round(((absoluteValue - degree) * 60 - minute) * 60) const tail = isLongitude ? (decimal > 0 ? 'E' : decimal < 0 ? 'W' : '') : (decimal > 0 ? 'N' : decimal < 0 ? 'S' : '') - return `${Math.abs(degrees)}°${minutes}'${seconds}"${tail}`; + return `${degree}°${minute}'${second}"${tail}` } \ No newline at end of file