将纬度和经度值(度)转换为Double。 Java的

时间:2013-10-17 09:57:15

标签: java android

我正在尝试将度数的纬度和经度值转换为double。   值就像这样

 "latitude":"25°21 N",
        "longitude":"55°23 E"

当我尝试在Android中记录它时,它就像这样。  enter image description here

那里有"A^"特殊字符是什么。怎么来的当我尝试保存日志时 它就像25°21 N

如何将度数值转换为纬度和经度的两倍?

由于

1 个答案:

答案 0 :(得分:5)

对于您当前的示例,您必须解析输入,一次解析为该公式分配。

解析输入

Map<String,String> yourMap; //imagine is your input 
                            //"latitude":"25°21 N",
                            //"longitude":"55°23 E"

String latitude = yourMap.get("latitude");
String hour = latitude.split("º")[0];
String minute = latitude.split("º")[1].split(" ")[0];

// This is a very ugly way to parse it, better do with regular expressions, 
// but I'm not an expert on them and cannot figure them.


//Parse result
String hour = "25";
String minute = "21";
String second = "0";

//Formula
double result = Integer.intValue(hour) + 
                Integer.intValue(minute) / 60 + 
                Integer.intValue(second) / 3600;