JavaScript实现参考如下:
//经纬度转墨卡托
function lonLat2Mercator( lonLat){
var mercator = {X:0,Y:0};
var x = lonLat.X * 20037508.34 / 180;
var y = Math.log(Math.tan((90 + lonLat.Y) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
mercator.X = x;
mercator.Y = y;
return mercator;
}
//墨卡托转经纬度
function mrcator2lonLat(mercator){
var lonLat = {X:0,Y:0};
var x = mercator.X / 20037508.34 * 180;
var y = mercator.Y / 20037508.34 * 180;
y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2);
lonLat.X = x;
lonLat.Y = y;
return lonLat;
}