degree2DMS function
Converts decimal degrees to degrees, minutes, and seconds.
Example:
print(degree2DMS(23.504166666666666)); // Output: [23, 30, 15]
Implementation
List<num> degree2DMS(num degDEC) {
if (degDEC.isNaN) {
return [];
}
var absDegDec = degDEC.abs();
// Calculate degrees
int deg = absDegDec.truncate();
// Calculate minutes
num remainder = absDegDec - deg;
int min = (remainder * 60).truncate();
// Calculate seconds
double sec = ((remainder * 60) - min) * 60;
// Adjust values if seconds or minutes are 60 or more
if (sec >= 60) {
sec = 0;
min += 1;
}
if (min >= 60) {
min = 0;
deg += 1;
}
// Return result with correct sign for degrees
return [degDEC >= 0 ? deg : deg * -1, min, sec];
}