Android 位置将纬度和经度从 DMS 格式更改为双精度
Android location change Latitude and Longitude from DMS format to double
我有一个位置格式 (24°13'30.92"N,55°45'51.94"E),我需要通过 android 将其转换为双精度格式值像 (24.225275, 55.764417).
我试过类似的方法,但没有用
String lonStr="24°13'30.92"N";
Double lon=Location.convert(lonStr);
Use substring
and indexOf
extract minutes and second divide by 60 and 3600 respectively and
finally add degree part.
String str="24°13'30.92\"N,55°45'51.94\"E";
String s[]=str.split(",");
double lat=Integer.parseInt(s[0].substring(0,s[0].indexOf("°")))+(double)Integer.parseInt(s[0].substring(s[0].indexOf("°")+1, s[0].indexOf("'")))/60+ Double.parseDouble(s[0].substring(s[0].indexOf("'")+1, s[0].indexOf("\"")))/3600;
// same for longitude
System.out.println(String.format("%.6f", lat));
输出:
24.225256
我有一个位置格式 (24°13'30.92"N,55°45'51.94"E),我需要通过 android 将其转换为双精度格式值像 (24.225275, 55.764417).
我试过类似的方法,但没有用
String lonStr="24°13'30.92"N";
Double lon=Location.convert(lonStr);
Use
substring
andindexOf
extract minutes and second divide by 60 and 3600 respectively and finally add degree part.
String str="24°13'30.92\"N,55°45'51.94\"E";
String s[]=str.split(",");
double lat=Integer.parseInt(s[0].substring(0,s[0].indexOf("°")))+(double)Integer.parseInt(s[0].substring(s[0].indexOf("°")+1, s[0].indexOf("'")))/60+ Double.parseDouble(s[0].substring(s[0].indexOf("'")+1, s[0].indexOf("\"")))/3600;
// same for longitude
System.out.println(String.format("%.6f", lat));
输出:
24.225256