Gis 从度数到小数和逆公式的计算

Gis 从度数到小数和逆公式的计算,gis,Gis,从度到小数的转换公式为: Decimal= SIGN* Degrees+(Dec. Degrees)/60 如果符号=南或西,则符号=-1 但如果我有十进制值,我怎么能得到符号、度和Dec.度的值呢 例如,如果十进制=50,十进制=90,我得到的结果是51.5 51.5 = 50 + 90/60 但我试着计算逆,得到了一个公式: 51.5 = X1+ X2/60 无法捕获如何获得2个变量X1和X2 谢谢 我假设您希望将十进制度数DD转换为度数、分、秒DMS,反之亦然 // Decima

从度到小数的转换公式为:

Decimal= SIGN* Degrees+(Dec. Degrees)/60
如果符号=南或西,则符号=-1

但如果我有十进制值,我怎么能得到符号、度和Dec.度的值呢

例如,如果十进制=50,十进制=90,我得到的结果是51.5

 51.5 = 50 + 90/60
但我试着计算逆,得到了一个公式:

 51.5 = X1+ X2/60
无法捕获如何获得2个变量X1和X2


谢谢

我假设您希望将十进制度数DD转换为度数、分、秒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,那么您只需删除舍入调用

编辑: 关于你的价值观,90分钟以上实际上是1度30分钟。
您可以自己在

上测试计算,但不确定,这实际上是lat/lan计算。你能给我举个例子吗:51.5=X1+X2/60?添加了你的价值计算,并添加了一个页面,你可以测试自己。如果你的问题得到了回答,请将其标记为。