Convert Degrees/Minutes/Seconds to Decimal Coordinates

前端 未结 7 1328
青春惊慌失措
青春惊慌失措 2020-12-01 12:31

In one part of my code I convert from decimal coordinates to degrees/minutes/seconds and I use this:

double coord = 59.345235;
int sec = (int)Math.Round(coor         


        
7条回答
  •  囚心锁ツ
    2020-12-01 13:10

    The accepted answer to date is inaccurate and doesn't take into account what happens when you add negative numbers to positive numbers. The below code addresses the issue and will correctly convert.

        public double ConvertDegreeAngleToDouble(double degrees, double minutes, double seconds)
        {
            var multiplier = (degrees < 0 ? -1 : 1);
            var _deg = (double)Math.Abs(degrees);
            var result = _deg + (minutes / 60) + (seconds / 3600);
            return result * multiplier;
        }
    

提交回复
热议问题