直接上代码
// 平面坐标转换经纬度
const webMercator2LngLat = (x, y) => {
var lng = (x / 20037508.34) * 180;
var lat = (y / 20037508.34) * 180;
lat =
(180 / Math.PI) *
(2 * Math.atan(Math.exp((lat * Math.PI) / 180)) - Math.PI / 2);
return [lng, lat];
};
// 经纬度转墨卡托平面坐标
const lngLat2WebMercator = (lng, lat) => {
const earthRad = 6378137.0;
const x = ((lng * Math.PI) / 180) * earthRad;
const a = (lat * Math.PI) / 180;
const y =
(earthRad / 2) * Math.log((1.0 + Math.sin(a)) / (1.0 - Math.sin(a)));
return [x, y];
};