java - 如何在java中将纬度和经度从十进制dms转换为度数

标签 java google-maps dictionary gps latitude-longitude

我从 GPS 接收到的纬度和经度格式如下:

纬度:3328.21103S 经度:07043.64734W

我需要将此数据转换为:

纬度:-33.4701838 经度:-70.7274557

如何在java中转换这些数据?

谢谢。

最诚挚的问候。

最佳答案

我是这样解决的:

1- 以度、分、秒、方向(N、S、W、E)表示的独立纬度和经度

2- 将度、分、秒、方向发送到方法 DMSaDecimal,返回:十进制的纬度或经度

public double DMSaDecimal(int grados, int minutos, double segundos, String direccion) {

    double decimal = Math.signum(grados) * (Math.abs(grados) + (minutos / 60.0) + (segundos / 3600.0));

    //reverse for south or west coordinates; north is assumed
    if (direccion.equals("S") || direccion.equals("W")) {
        decimal *= -1;
    }

    return decimal;
}

public String[] SeparararDMS(String coordenada, int type) {

    String grados = null;
    String minutos = null;
    String segundos = null;
    String direccion = null;


    switch (type) {
        case 1: // latitude
            grados = coordenada.substring(0, 2);
            minutos = coordenada.substring(2, 4);
            segundos = coordenada.substring(5, coordenada.length() - 1);
            break;
        case 2: // longitude
            grados = coordenada.substring(0, 3);
            minutos = coordenada.substring(3, 5);
            segundos = coordenada.substring(6, coordenada.length() - 1);
            break;
        default:

    }

    double sec = 0;
    try {
        sec = Double.parseDouble("0."+segundos);
    }catch(Exception e) {

    }


    sec = (sec * 60);
    direccion = coordenada.substring(coordenada.length() - 1);

    String[] data = {grados, minutos, sec + "", direccion};
    return data;
}

关于java - 如何在java中将纬度和经度从十进制dms转换为度数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22902803/

相关文章:

java - 在 Cucumber 表中使用元素定位器

实现 Map 并保持插入顺序的 Java 类?

c# - 字典的反序列化问题

java - 如何解决java9中的模块读取包错误

java - 比较 ArrayList 数组中的元素 - Java

java - map API key 在 Android 应用程序中不起作用

javascript - 谷歌地图 API JS V3 : infowindow. getPosition() == 未定义?

javascript - Google map 最大标记

java - 用 Java 表示十六进制映射

c# - 您可以在 Java 中通过引用传递吗?