墨卡托与经纬度转换的代码,是object-c的,谁能给根据代码转成js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了墨卡托与经纬度转换的代码,是object-c的,谁能给根据代码转成js相关的知识,希望对你有一定的参考价值。

//经纬度转墨卡托
-(CGPoint )lonLat2Mercator:(CGPoint ) lonLat

CGPoint mercator;
double x = lonLat.x *20037508.34/180;
double y = log(tan((90+lonLat.y)*M_PI/360))/(M_PI/180);
y = y *20037508.34/180;
mercator.x = x;
mercator.y = y;
return mercator ;

//墨卡托转经纬度
-(CGPoint )Mercator2lonLat:(CGPoint ) mercator

CGPoint lonLat;
double x = mercator.x/20037508.34*180;
double y = mercator.y/20037508.34*180;
y= 180/M_PI*(2*atan(exp(y*M_PI/180))-M_PI/2);
lonLat.x = x;
lonLat.y = y;
return lonLat;

var lonlat=x:114.514864,y:38.04232;
var mercator=x:12747736.346966475,y:4585405.935084799;

//经纬度转墨卡托
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 mercator2lonlat(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;

// answered by : hweitao123@163.com
参考技术A 首先基站代码与经纬度没有直接必然的联系。
要实现转换,必须得到基站所在的地理坐标和代码的对应关系。建站一般需要规划在图纸上,图纸上的地图可与经纬度对照,这样基站代码和经纬度就有了间接的联系。将这些联系放在数据库中,只要有权访问就能转换了。当然这样的资源都掌握在运营商手里,要得到不太容易。

以上是关于墨卡托与经纬度转换的代码,是object-c的,谁能给根据代码转成js的主要内容,如果未能解决你的问题,请参考以下文章

百度地图墨卡托坐标转高德经纬度坐标(偏移小)

经纬度坐标和投影坐标的转换

经纬度和墨卡托坐标相互转换

坐标转换:墨卡托 & 经纬度

JAVA代码根据经纬度范围计算WGS84与谷歌全球墨卡托包含的切片数目与拼接图像像素尺寸

火星坐标百度坐标WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版