2011-05-19 65 views
0

工作我使用的是按以下格式检索信息的GPS网络服务(号码改变了一点隐私的原因,但格式不变):与GPS数据在Java中

X: 32 14 08.47S 
Y: 140 17 12.82E 

我需要什么要做的是将这些转换为十进制坐标(xx.xxxxxxxxx,xx.xxxxxxxxx)。是否有任何简单的Java代码片段可以完成此任务?如果不是,我很高兴看到解释如何以不同语言实现这一目标的资源。

+0

搜索“度分秒到十进制度转换”。 (http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=degree+minute+seconds+to+decimal+degrees+java) – I82Much 2011-05-19 01:43:24

回答

2

如果度,分,秒,保证分开,你可以做的

String line = read_a_line_from_file(); 
String[] tokens = line.split(" "); 

一样简单的东西,你会留下

tokens[0] = "X:" 
tokens[1] = "32" 
tokens[2] = "14" 
tokens[3] = "08.47S" 

然后你可以Double.parseDouble()一个空格tokens[0]后面的数字可以获得数字度数,分钟数和秒数,然后再组合得到小数点数。当然对于tokens[3],在进行解析之前,你必须去掉最后的N/S/E/W字符。

另一种更优雅的可能性可能是利用MessageFormat及其子类的实例可用于解析给定格式的字符串以及格式化此类字符串的事实。