高德地图API获取的经纬度转为百度地图经纬度显示

通过高德地图API获取的经纬度显示在百度地图上会有位置的偏差,原因是百度地图对经纬度进行了加密,通过以下方法对经纬度进行转换可在百度地图上精准显示

private double[] gaoDeToBaidu(double gd_lon, double gd_lat) {
    double[] bd_lat_lon = new double[2];
    double PI = 3.14159265358979324 * 3000.0 / 180.0;
    double x = gd_lon, y = gd_lat;
    double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * PI);
    double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * PI);
    bd_lat_lon[0] = z * Math.cos(theta) + 0.0065;//经度
    bd_lat_lon[1] = z * Math.sin(theta) + 0.006;//纬度
    return bd_lat_lon;
}

猜你喜欢

转载自blog.csdn.net/qq_39234840/article/details/83341458