当经度/纬度值为DMS格式时,Android显示地图位置

当经度/纬度值为DMS格式时,Android显示地图位置,android,google-maps,map,latitude-longitude,dms,Android,Google Maps,Map,Latitude Longitude,Dms,在我的Android应用程序中,我需要加载Google地图,并根据提供的纬度和经度值显示位置。 我参考了下面的教程,它完全可以。干得好 问题是纬度和经度值存储在DMS Fromat的SQLite数据库中。如果这些值是十进制度数格式,那么就没有问题了,就像我在那个教程中所做的那样 我需要通过添加覆盖项来显示确切的位置(我已经用DMS格式给出了经度和纬度值) [示例值:36°7'59''N,5°25'59''W] 谢谢…如果您想将纬度经度值转换为度分钟格式,那么代码就在这里 String locL

在我的Android应用程序中,我需要加载Google地图,并根据提供的纬度和经度值显示位置。 我参考了下面的教程,它完全可以。干得好

问题是纬度和经度值存储在DMS Fromat的SQLite数据库中。如果这些值是十进制度数格式,那么就没有问题了,就像我在那个教程中所做的那样

我需要通过添加覆盖项来显示确切的位置(我已经用DMS格式给出了经度和纬度值)

[示例值:36°7'59''N,5°25'59''W]


谢谢…

如果您想将纬度经度值转换为度分钟格式,那么代码就在这里

String locLat, locLng;

locLat = Double.toString(location.getLatitude());
locLng = Double.toString(location.getLongitude());

String locLatTodeg = DoubleToDeg(locLat);
String locLngTodeg = DoubleToDeg(locLng);

private String DoubleToDeg(String locLng) {
    // TODO Auto-generated method stub
    String retStringLoc = null;
    try {
        String firString = locLng.replace(".", ";");
        String[] firLocArr = firString.split(";");
        Float deg = new Float("." + firLocArr[1]);
        Float Cnvtddeg = deg * 60;
        String secString = new Float(Cnvtddeg).toString().replace(".", ";");
        String[] secLocArr = secString.split(";");
        Float min = new Float("." + secLocArr[1]);
        Float Cnvtdmin = min * 60;
        String tirString = new Float(Cnvtdmin).toString().replace(".", ";");
        String[] tirLocArr = tirString.split(";");
        retStringLoc = firLocArr[0] + "°" + secLocArr[0] + "'"
                + tirLocArr[0] + "''";
    } catch (Exception e) {
        // Log.i("Exception", e.toString());

    }
    return retStringLoc;
}

我认为这对你很有帮助…

如果你想把经纬度值转换成度数分钟格式,那么代码就在这里

String locLat, locLng;

locLat = Double.toString(location.getLatitude());
locLng = Double.toString(location.getLongitude());

String locLatTodeg = DoubleToDeg(locLat);
String locLngTodeg = DoubleToDeg(locLng);

private String DoubleToDeg(String locLng) {
    // TODO Auto-generated method stub
    String retStringLoc = null;
    try {
        String firString = locLng.replace(".", ";");
        String[] firLocArr = firString.split(";");
        Float deg = new Float("." + firLocArr[1]);
        Float Cnvtddeg = deg * 60;
        String secString = new Float(Cnvtddeg).toString().replace(".", ";");
        String[] secLocArr = secString.split(";");
        Float min = new Float("." + secLocArr[1]);
        Float Cnvtdmin = min * 60;
        String tirString = new Float(Cnvtdmin).toString().replace(".", ";");
        String[] tirLocArr = tirString.split(";");
        retStringLoc = firLocArr[0] + "°" + secLocArr[0] + "'"
                + tirLocArr[0] + "''";
    } catch (Exception e) {
        // Log.i("Exception", e.toString());

    }
    return retStringLoc;
}

我认为这对你有帮助……

很抱歉我误解了这个问题`doit(“36°7'59’”)

公共void doit(字符串lat){

String str=lat;
字符串[]temp=null;
字符串dtemp=null;
字符串[]通过=新字符串[4];
//temp=str.split(“[\”]\\“[\']”);
temp=str.split(“[\”]|[\']”);
系统输出打印项次(“尝试清空”+温度);
dtemp=str.replace(“\”,“”);
System.out.println(“dtempdtemp”+dtemp);
System.out.println(“格式化的DCM------:”+dtemp);
字符串[]temp1=temp[0]。拆分(“”);
System.out.println(“\n协议温度:+temp1[0]);
系统输出打印项次(“\n分钟温度:“+temp1[1]);
通过[0]=temp1[0];
通过[1]=temp1[1];
通过[2]=温度[1];
倾倒(通行证);
}
公共无效转储(字符串[]s){
对于(int i=0;i

我想这对你有帮助。

很抱歉我误解了这个问题`doit(“36°7'59’”)

公共void doit(字符串lat){

String str=lat;
字符串[]temp=null;
字符串dtemp=null;
字符串[]通过=新字符串[4];
//temp=str.split(“[\”]\\“[\']”);
temp=str.split(“[\”]|[\']”);
系统输出打印项次(“尝试清空”+温度);
dtemp=str.replace(“\”,“”);
System.out.println(“dtempdtemp”+dtemp);
System.out.println(“格式化的DCM------:”+dtemp);
字符串[]temp1=temp[0]。拆分(“”);
System.out.println(“\n协议温度:+temp1[0]);
系统输出打印项次(“\n分钟温度:“+temp1[1]);
通过[0]=temp1[0];
通过[1]=temp1[1];
通过[2]=温度[1];
倾倒(通行证);
}
公共无效转储(字符串[]s){
对于(int i=0;i

我认为这对u有帮助。

当我为这个方法传递这个字符串时,它给出了一个异常。字符串str=“32°18'23.1'N,122°36'52.5'W”;异常消息是[对于输入字符串:“.1''N,122°36'52”]当我将此字符串传递给此方法时,它会给出异常。字符串str=“32°18'23.1'N,122°36'52.5'W”;异常消息是[对于输入字符串:“.1''N,122°36'52”]检查此链接以获取答案检查此链接以获取答案