Android:gps84转火星坐标GCJ-02

经纬度坐标只有小数点6位时,转经纬度小数点后12位

 /** 
     * 84 to 火星坐标系 (GCJ-02) World Geodetic System ==> Mars Geodetic System 
     * 
     * @param lat 
     * @param lon 
     * @return 
     */  
    public static double[] gps84_To_Gcj02(double lat, double lon) {  
        if (outOfChina(lat, lon)) {  
            return new double[]{lat,lon};  
        }  
        double dLat = transformLat(lon - 105.0, lat - 35.0);  
        double dLon = transformLon(lon - 105.0, lat - 35.0);  
        double radLat = lat / 180.0 * pi;  
        double magic = Math.sin(radLat);  
        magic = 1 - ee * magic * magic;  
        double sqrtMagic = Math.sqrt(magic);  
        dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);  
        dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);  
        double mgLat = lat + dLat;  
        double mgLon = lon + dLon;
        System.out.println("GPS:::mgLat::"+mgLat);
        System.out.println("GPS:::mgLon::"+mgLon);
        return new double[]{mgLat, mgLon};  
    }  

调用

System.out.println("GPS:::"+gu.gps84_To_Gcj02(39.906901,116.397972)[0]);
System.out.println("GPS:::"+gu.gps84_To_Gcj02(39.906901,116.397972)[1]);

猜你喜欢

转载自blog.csdn.net/title71/article/details/115064924
今日推荐