寻找一个java实用程序。如果您能告诉我如何使用 geotools 库来做到这一点,那就更好了。
寻找一个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 小部件。
**begin 23°26’49”**
degrees = 23
minutes = 26
seconds = 49
decimal = ((minutes * 60)+seconds) / (60*60))
answer = degrees + decimal
**finish 23.44694444**
这取决于您的源格式。如果它已经分为度数 (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;