在Javascript中。
我有一张1024 x 1024px的世界地图 - 它是一个球形墨卡托投影。
我希望将long / lat转换为此映射的x,y。我有一堆坐标需要叠加在它上面。
计算经度非常简单,我这样做:
pos.x = ((long + 180)/ 360) * 1024;
我只需要同样的lat - > ÿ
我环顾四周看到了很多关于openlayers的内容,但没有看到这样的转换。
答案 0 :(得分:4)
把它煮沸:
var mercator = function(lat, lng) {
return [lng, Math.log( (Math.sin(lat) + 1.0) / Math.cos(lat)) ] ;
};
当然,Lat和long必须以弧度表示。
答案 1 :(得分:-1)
您可以在此维基百科文章中找到相应的公式:Mercator Projection。