问题:高德地图获取的坐标点,放在基于echarts的百度地图扩展渲染出来的散点图中,发现坐标点对不上。
解决办法:写个方法转换一下
/** 高德、百度地图坐标互相转换 */
export const gaodeToBaidu = (lng, lat) => {
const x_PI = (Math.PI * 3000.0) / 180.0
let z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI)
let theta = Math.atan2(lat, lng) + 0.00002 * Math.cos(lng * x_PI)
let bd_lng = z * Math.cos(theta) + 0.0065
let bd_lat = z * Math.sin(theta) + 0.006
return [bd_lng, bd_lat]
}
const res = gaodeToBaidu(lng, lat)
成功解决!
【后续】反馈说还是有偏差,研究后需要修改个数值就没有问题了
【代码】
/** 高德、百度地图坐标互相转换 */
export const gaodeToBaidu = (lng, lat) => {
const x_PI = (Math.PI * 3000.0) / 180.0
let z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI)
let theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI)
let bd_lng = z * Math.cos(theta) + 0.0065
let bd_lat = z * Math.sin(theta) + 0.006
return [bd_lng, bd_lat]
}