问题原因:百度地图 与 腾讯地图是两种 地图坐标系
火星坐标系统 GCJ-02 地图厂商如下
腾讯搜搜地图
搜狐搜狗地图
阿里云地图
高德MapABC地图
灵图51ditu地图
百度坐标系统 BD-09【对火星坐标系进行一次加密】 地图厂商如下
百度Baidu地图
解决办法:
1.百度经纬度转换成腾讯/高德地图经纬度
function bMapTransQQMap(lng, lat) {
let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
let x = lng - 0.0065;
let y = lat - 0.006;
let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
let lngs = z * Math.cos(theta);
let lats = z * Math.sin(theta);
return {
lng: lngs,
lat: lats
}
}
2.腾讯/高德地图经纬度转换成百度经纬度
function qqMapTransBMap(lng, lat) {
let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
let x = lng;
let y = lat;
let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
let lngs = z * Math.cos(theta) + 0.0065;
let lats = z * Math.sin(theta) + 0.006;
return {
lng: lngs,
lat: lats
}
}