墨卡托与经纬度转换的代码,是object-c的,谁能给根据代码转成js
发布网友
发布时间:2022-05-06 06:34
我来回答
共2个回答
热心网友
时间:2022-06-28 22:11
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
热心网友
时间:2022-06-28 22:12
首先基站代码与经纬度没有直接必然的联系。
要实现转换,必须得到基站所在的地理坐标和代码的对应关系。建站一般需要规划在图纸上,图纸上的地图可与经纬度对照,这样基站代码和经纬度就有了间接的联系。将这些联系放在数据库中,只要有权访问就能转换了。当然这样的资源都掌握在运营商手里,要得到不太容易。