百度坐标转gps坐标

vue3页面实现:

利用百度api的jsapi中的 BMap.Convertor()此方法通过计算取巧算出gps坐标误差非常小;

假设百度坐标:lng1:113.94620475687566  lat1:22.56028856475092

把这个坐标当成GPS坐标,通过接口获得他的百度坐标:lng2=113.95764483473,lat2=22.562997980443

通过计算就可以得到GPS的坐标:

var gpslng=2.0000003075964803*lng1-lng2;
var gpslat=2.00000414376305204*lat1-lat2;

计算得到的gps坐标 lng:113.93479972847284  lat:22.55767263354904

js:实现

  var pointArr = [];
  var ggPoint = new BMap.Point(lng1,lat1);//lng1:113.94620475687566  lat1:22.56028856475092
        pointArr.push(ggPoint);
 var convertor = new BMap.Convertor();
          convertor.translate(pointArr, 1, 5, function (darse) {
            if(data.status === 0) {
              if (data.points && data.points.length>0) {
                for (let k = 0; k < data.points.length; k++) {
                  var oldlnglat=pointArr[k];
                  var oldlng=oldlnglat.lng;
                  var oldlat=oldlnglat.lat;
                  var marker = data.points[k];
                  var lng=marker.lng;
                  var lat=marker.lat;
                  var gpslng=2.0000003075964803*oldlng-lng;
                  var gpslat=2.00000414376305204*oldlat-lat;
                }
              }
             
            }
          });
 
 
posted @ 2024-07-02 16:48  Kiss丿残阳  阅读(5)  评论(0编辑  收藏  举报