我想在我的Android项目中实现地图。我已经准备好地图,坐标和所有方法,但是我发现我不知道如何处理收到的这种坐标格式:
50°32'20.548 \\“ N”
Android Studio需要这样的双格式:-33.852,151.211 ......而且我不知道如何转换。有没有人处理过类似的问题,可以帮我吗?
谢谢:)
我必须使用的坐标(无法更改):
{
"monumentid1": {
"name": "Bečov nad Teplou - Zámek",
"gpsx": "50°5'8.145\\\"N",
"gpsy": "12°50'23.468\\\"E"
},
"monumentid2": {
"name": "Benešov nad Ploučnicí - Zámek ",
"gpsx": "50°44'32.727\\\"N",
"gpsy": "14°18'39.412\\\"E"
},
"monumentid3": {
"name": "Bezděz - Hrad",
"gpsx": "50°32'20.548\\\"N",
"gpsy": "14°43'11.607\\\"E"
答案 0 :(得分:1)
Location
类具有执行DMS字符串转换(加倍)的静态方法-但首先需要调整您的字符串以匹配可接受的格式“ DD:MM:SS.SSSS”。转换后,符号需要针对半球进行调整:
public class HelloWorld
{
public static void main(String[] args)
{
// The triple backslash is data author's attempt to escape the double-quote.
String s = "50°32'20.548\\\"N";
// Get rid of any residual backslashes
s = s.replace("\\","");
// split string into constituent parts using apparent separators
String[] dms = s.split("[°'\"]");
// form 'newS' which complies with Location.FORMAT_SECONDS
String newS = dms[0]+":"+dms[1]+":"+dms[2];
// and grab hemisphere (to implement sign)
String hemi = dms[3];
double coord = Location.convert(newS);
if (hemi.compareTo("W") == 0 || hemi.compareTo("S") == 0) {
coord = -coord;
}
}
}
答案 1 :(得分:0)
1度是60分钟,而1分钟是60秒...
例如
50°30'与50.5相同
答案 2 :(得分:0)
您应该编写一个函数,该函数接受一个String并将这些坐标转换为可以使用的数字。