如何在度,分,秒之间转换为十进制坐标
寻找一个java实用程序。 如果您可以使用geotools库告诉我如何使用它,那就更好了。
“十进制坐标”是指纬度和经度(也称为十进制度数)? 如果是这样,你要做的事情很简单:
给定DMS(度,分,秒)坐标,例如W87°43’41“,使用以下方法将其转换为十进制度数是微不足道的:计算总秒数,
43′41″ = (43*60 + 41) = 2621
秒。 小数部分是总秒数除以3600. 2621/3600 = ~0.728056将小数度加到整数度以产生最终结果:87 + 0.728056 = 87.728056由于它是西经度坐标,否定结果。 最终结果是-87.728056。
来自维基百科 。 这是一个Javascript小部件 ,它做同样的事情。
这取决于您的源格式。 如果它已经分为度(d),分钟(m)和秒(s),则算法为:
(假设d可以是正数或负数)
dd = Math.signum(d) * (Math.abs(d) + (m / 60.0) + (s / 3600.0));
如果它一起被粉碎成一个字符串,通常的格式是:
“ddd.mmss”
因此,使用正则表达式解析或使用String.substring()来获取m和s。
转换回来是:
d = (int)dd; // Truncate the decimals t1 = (dd - d) * 60; m = (int)t1; s = (t1 - m) * 60;
**begin 23°26'49”** degrees = 23 minutes = 26 seconds = 49 decimal = ((minutes * 60)+seconds) / (60*60)) answer = degrees + decimal **finish 23.44694444**