通过高德地图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;
}