首页 > 解决方案 > 从度数到小数和逆公式的计算

问题描述

将度数转换为小数的公式为:

Decimal= SIGN* Degrees+(Dec. Degrees)/60

如果 SIGN=South 或 West,则 SIGN=-1

但是如果我有 Decimal 值,我怎么能得到 SIGN、Degrees 和 Dec. Degrees 值?

例如,如果 Decimal = 50 和 Dec. Degrees = 90,我得到结果 51.5

 51.5 = 50 + 90/60

但试图计算逆我得到了公式:

 51.5 = X1+ X2/60

无法理解如何获得 2 个变量 X1 和 X2 ?

谢谢!

标签: gis

解决方案


我假设您想从Decimal Degrees(DD) 转换为Degrees,Minutes,Seconds(DMS),反之亦然。

// Decimal Degrees to Degrees,Minutes,Seconds
D = floor(DD);
M = floor((DD - D) * 60);
S = round((DD - D - M/60) * 3600);

// Degrees,Minutes,Seconds to Decimal Degrees
DD = D + M/60 + S/3600;

// calculations for your case above
DD = 51.5
D = floor(51.5) => D = 51
M = floor((51.5 - 51) * 60) => M = floor(0.5 * 60) => M = 30 
S = round((51.5 - 51 - 30/60) * 3600) => S = 0
// so 51.5 DD = 51° 30' 0'' DMS

如果您还想将小数部分保留几秒钟(例如32.15,而不是32),您只需删除round呼叫。

编辑:
关于90 分钟以上的值实际上是1 度和 30 分钟
您可以在此页面上自己测试计算


推荐阅读