zoukankan      html  css  js  c++  java
  • Web Mercator

    在墨卡托投影中,强调角度不变——假定地球表面有两点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坐标是:

    所以,最终的结果就是:

    也许你会怀疑,这个积分是怎样计算出来的,说实话我也没有搞清楚,据说是骨灰级的数学家算出来的,如果你想验证,我建议你从微分入手,证明下式成立,可能会容易一些:

  • 相关阅读:
    第十章学习笔记
    MyOD(选作,计入平时成绩)
    学习笔记第九章
    第一、二章学习笔记
    团队作业(一):团队展示
    C语言实现Linux下od -tx -tc XXX的功能
    第七、八章学习笔记
    Sort 在 Linux
    Linux C语言编程基础
    MyOD
  • 原文地址:https://www.cnblogs.com/yixinliu/p/2595105.html
Copyright © 2011-2022 走看看