项目场景:
uni中百度地图经纬度转高德地图经纬度
问题描述
后端传递过来的是百度地图的经纬度,项目中使用的是高德地图的经纬度,如果直接拿后端的经纬度,地理位置会有一定的偏差,所以需要进行一个经纬度转换
解决方案:
// 百度坐标转高德坐标
const bd09togcj02 = (bd_lon, bd_lat) => {
const x_pi = 3.14159265358979324 * 3000.0 / 180.0;
const x = bd_lon - 0.0065;
const y = bd_lat - 0.006;
const z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
const theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
const gg_lng = z * Math.cos(theta);
const gg_lat = z * Math.sin(theta);
return {
lon: gg_lng,
lat: gg_lat
};
};
// 转换后的经纬度
const {lon,lat} = bd09togcj02(longitude, latitude);