之前使用这个工具转坐标,但是后续发现转换不太准确 比如:39.911232,116.470853 这个高德系坐标,直接查地图是当前位置 使用方法返回坐标116.4643719288675,39.9051948554639 用百度地图查的结果就不是当前位置,经纬度不太准确
const gcj2bdString = function(bdLat, bdLon) {
try {
var x_pi = 3.14159265358979324;
var x = bdLon - 0.0065,
y = bdLat - 0.006;
var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
var gcjLon = z * Math.cos(theta);
var gcjLat = z * Math.sin(theta);
return gcjLat + ',' + gcjLon;
} catch (err) {
console.log(err)
}
}
使用了另一个工具
const gcj2bdString = function(lat, lng) {
try {
let x_PI = 3.14159265358979324 * 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_lat + ',' + bd_lng
} catch (err) {
console.log(err)
}
}
返回结果是39.91693390494561,116.47744341913783 这个经纬度就准确很多了 记录一下