2011-11-25 162 views

回答

20

通过“十进制坐标”你是指经度和纬度(也称为小数度)?如果是这样,你正在做什么是很容易的:

给定一个DMS(度,分,秒)协调,如W87°43'41“, 是微不足道将它转化成一些使用以下方法的 十进制度数: 计算总秒数,43′41″ = (43*60 + 41) = 2621秒。的小数部分是通过36003600分之2621=〜0.728056秒除以 总数添加分数度到整个 度以产生最终结果是:87 + 0.728056 = 87.728056

既然是西经度坐标,否定结果。 最终结果是-87.728056。

Wikipedia。这是一个Javascript widget,做同样的事情。

21

这取决于您的源格式。如果它已经分裂成度(d),分(M)和秒(s),你的算法是:

(假设d是可正可负)

dd = Math.signum(d) * (Math.abs(d) + (m/60.0) + (s/3600.0)); 

如果它smooshed连成一个字符串,通常的格式是:

“ddd.mmss”

所以解析出使用正则表达式或String.substring()来获得m和s。

转换回是:

d = (int)dd; // Truncate the decimals 
t1 = (dd - d) * 60; 
m = (int)t1; 
s = (t1 - m) * 60; 
8
**begin 23°26’49”** 
degrees = 23 
minutes = 26 
seconds = 49 
decimal = ((minutes * 60)+seconds)/(60*60)) 
answer = degrees + decimal 
**finish 23.44694444** 
的[?如何转换这些坐标通过谷歌地图坐标可读(
+0

谢谢。测试http://www.sunearthtools.com/dp/tools/conversion.php,它的工作原理 –

相关问题