Java 解析GPS芯片 的经纬度信息

**

通过芯片获取到的经纬度信息,是不能直接使用的,下面是一个java的换算,其实就是度分秒的转换,不过他的数据有点坑。

**
我们获取到的数据一般是这种的:
$GNGGA,012135.000,3704.9891,N,11911.9880,E,1,11,1.3,33.6,M,0.4,M,0000*4F
使用方法分割之后
传入经纬度字符串(一定要是字符串) 然后返回一个double数组 0位经度,1位 纬度,直接使用即可

  public double[] getGPSData(String j, String w) {
        double[] LanLon = new double[2];
        try {
            String jingdu = j.split("\\.")[0].substring(0, j.split("\\.")[0].length() - 2);
            String minutes = j.split("\\.")[0];
            double dec_jingdu = (((Double.parseDouble(j) -
                    Double.parseDouble(j.split("\\.")[0])) * 60 / 3600 + (Double
                    .parseDouble(minutes.substring(minutes.length() - 2)) / 60)));
            String weidu = w.split("\\.")[0].substring(0, w.split("\\.")[0].length() - 2);
            String weidu_minutes = w.split("\\.")[0];
            double dec_weidu = (((Double.parseDouble(w) -
                    Double.parseDouble(w.split("\\.")[0])) * 60 / 3600 + (Double
                    .parseDouble(weidu_minutes.substring(weidu_minutes.length() - 2)) / 60)));
            LanLon[0] = (Double.parseDouble(jingdu) + dec_jingdu);
            LanLon[1] = (Double.parseDouble(weidu) + dec_weidu);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return LanLon;
    }

你可能感兴趣的:(java,GPS,JAVA,GNGGA)