小程序腾讯地图和百度地图坐标偏差纠正的解决方案

最近在将老项目改版,APP改小程序,使用到地图相关,老项目使用的是百度地图,小程序使用的当然是腾讯自家的地图,结果发现原来的百度地图坐标在腾讯地图显示偏差过大。

原来两个地图用的是两套坐标系,腾讯地图、高德地图用的是GCJ-02坐标,也就是国测局坐标系,而百度是自成一套,BD-09坐标系。

所以相同地点在经纬度在两个坐标系是不一样的,或者说有偏移。

方案1:

对于后台百度地图传过来的经纬度,要做一次转换,转换成腾讯地图的经纬度,再传给小程序显示

// 腾讯经纬度转百度经纬度
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
    };
  }
// 百度经纬度转腾讯经纬度
 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 {
      longitude: lngs,
      latitude: lats
    };
  }

 

方案2:

使用百度坐标转换Web服务API

图片[1] - 小程序腾讯地图和百度地图坐标偏差纠正的解决方案 - 捕风阁

 

 

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容