百度坐标转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;
}
}
}
});