墨卡托投影,又称等角正切圆柱投影,其原理是假设有一个与在赤道与地球相切的圆柱面,先把球面映射到这个圆柱面,再把这个圆柱面展开成为一个平面。
在墨卡托投影中,强调角度不变——假定地球表面有两点A和B,在地球球面上,B相对于A的角度是北偏东 ,那么经过墨卡托投影之后,在平面地图上,B相对于A的角度仍然是北偏东。这一点在航海中非常重要,因为在茫茫大海中,没有什么参照物,只能根据罗盘或者星象来判断方位,如果地图上终点相对于出发点的方位角和实际的方位角不同,那么这样的地图在航海中没有实际意义。正因为如此,海图一般都是采用墨卡托投影规则制作的(极地海图除外)。
- 例:设地球的半径为R,已知地球上一点P的坐标是 ,其中表示经度,范围是- <<,负数表示西经,正数表示东经;B表示维度,范围是- < <,负数表示南纬,正数表示北纬。将地球球面通过墨卡托投影映射到平面直角坐标系中,以0度经线与赤道的交点的映射点为原点,X轴与纬线平行,并取东方为正方向;Y轴与经线平行,并取北方为正方向。求P点在平面直角坐标系中的映射点P'的坐标 (Xp',Yp')。
解:根据墨卡托投影的原理可知,墨卡托投影是由一个和地球赤道相切的圆柱面展开而成的,所以展开之后的图形的宽度就是地球赤道的长度,P'点的X坐标就是通过P'点的经线与赤道的交点到0度经线和赤道的交点之间的距离,也就是赤道线的一部分,其值为:
求P’点的Y坐标稍微麻烦一点,我们看下图:
因为墨卡托投影要遵循的一个原则是方向角不变,所以映射过程中X方向和Y方向的缩放比例要相同。从图中我们可以知道,纬度为的纬线圈,投影过后变成和赤道一样长的一条直线,所以纬度为的点附近一个非常小的区域,投影过后,水平方向的放大比率是:
而根据墨卡托投影的规则,该块小区域垂直方向上上的放大比率也应该是 ,在投影之前的地球表面上,小块区域竖直方向的边长就是经线的一部分,我们可以用地球的半径乘以一个小角度来表示:
那么投影之后的小区域竖直方向上的边长应该是:
在上式中,对纬度进行积分,我们便可以计算出纬度是的点,投影之后的Y坐标是:
所以,最终的结果就是:
也许你会怀疑,这个积分是怎样计算出来的,说实话我也没有搞清楚,据说是骨灰级的数学家算出来的,如果你想验证,我建议你从微分入手,证明下式成立,可能会容易一些:
根据墨卡托投影得到的平面图,南北极点投影到无穷远处,但是google map的世界地图确实正方形的,所以google map的地图上靠经极地的地理信息肯定是丢失的。
以整个世界范围,赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。
X轴:由于赤道半径为6378137米,则赤道周长为2*PI*r = 20037508.3427892,因此X轴的取值范围:[-20037508.3427892,20037508.3427892]。
Y轴:由墨卡托投影的公式可知,同时上图也有示意,当纬度φ接近两极,即90°时,y值趋向于无穷。这是那些"懒惰的工程师"就把Y轴的取值范围也限定在[-20037508.3427892,20037508.3427892]之间,搞个正方形。
懒人的好处,众所周知,事先切好静态图片,提高访问效率云云。俺只是告诉你为什么会是这样子。因此在投影坐标系(米)下的范围是:最小(-20037508.3427892, -20037508.3427892 )到最大 (20037508.3427892, 20037508.3427892)。