js转换方法
var resultPoint = GpsToBaiduPoint(new BMap.Point(data.lon, data.lat));
var ps = [];
ps.push(new BMap.Point(points[i].lon, points[i].lat));
var resultPoints = GpsToBaiduPoints(ps);
/**
* 单个坐标转换
* @param point
* @returns {BMap.Point}
*/
function GpsToBaiduPoint(point){
var _t = wgs2bd(point.lat,point.lng);
var _BPoint = new BMap.Point(_t[1], _t[0]);
return _BPoint;
}
/**
* 批量坐标转换
* @param points
* @returns {Array}
*/
function GpsToBaiduPoints(points){
var resultPoints = [];
$.each(points,function(index,point){
var _t = wgs2bd(point.lat,point.lng);
var _BPoint = new BMap.Point(_t[1], _t[0]);
resultPoints.push(_BPoint);
});
return resultPoints;
}
//
//转换核心代码
//
var pi = 3.14159265358979324;
var a = 6378245.0;
var ee = 0.00669342162296594323;
var x_pi = 3.14159265358979324*3000.0/180.0;
//世界大地坐标转为百度坐标
function wgs2bd(lat,lon) {
var wgs2gcjR = wgs2gcj(lat, lon);
var gcj2bdR = gcj2bd(wgs2gcjR[0], wgs2gcjR[1]);
return gcj2bdR;
}
function gcj2bd(lat,lon) {
var x = lon, y = lat;
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_