惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
V
V2EX
量子位
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 【当耐特】
爱范儿
爱范儿
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
小众软件
小众软件
IT之家
IT之家
博客园_首页
博客园 - 聂微东
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗

Long Luo's Life Notes

夏至日测地球:利用太阳影子计算地球半径 2009年江西高考数学压轴题:陶平生老师又藏了什么数学机关? 《茶杯里的风暴》读书笔记:从日常生活中的小事,看懂背后的物理学 2008年江西高考数学压轴题详解:为什么它被称为史上最难高考数学题? 太阳温度是怎么计算出来的? 《大象的时间,老鼠的时间》读书笔记:生命节奏背后的数学规律 小港流到哪里去? 如何用一根棍子测出地球有多大?复刻埃拉托色尼的春分实验 2007江苏高考数学第20题解析:一道通向黄金分割数的数列压轴题 Google经典面试题: 鸡蛋应该怎么扔? 2010年江苏高考数学压轴题解析:巧用余弦定理与数学归纳法 2011年清华大学自主招生数学题解析:一道经典数列题的解法与思路 2011年清华大学自主招生数学题解析:一道经典数列题的解法与思路 2006年江西高考理科数学压轴题解析:递推、放缩与不等式结构 2006年江西高考理科数学压轴题解析:递推、放缩与不等式结构 一道初中数学极值题的多种解法:柯西不等式、几何法、函数法详解 扔几个骰子,怎么算出期望?——拼多多校招笔试算法题的数学故事 拼多多校招笔试算法题:一行公式搞定“多多的魔术盒子” 斯特林公式(Stirling's Formula):我一个阶乘表达式,怎么就和圆扯上关系了呢? 我爱做题:2010年江西高考理科数学压轴题 热机的效率上限在哪里?解析卡诺循环(Carnot Cycle) 为什么 2024 年会有 366 天? 数学之美:几何视角下的高斯积分(Gaussian Integral) 从最小二乘法到正态分布:高斯是如何找到失踪的谷神星的? 正态分布(Normal Distribution)公式为什么长这样? 高速公路编号背后的数学密码 2024阿里巴巴全球数学竞赛预选赛试题及解答 库函数 (libm) 是如何计算三角函数值的? payne hanek 归约算法 音乐背后的数学
墨卡托的魔术:地图是如何欺骗你的眼睛的?
2023-05-20 · via Long Luo's Life Notes

By Long Luo

最近在书店里看到一本 《数学的奥秘》 ,原著是 《The Secret Life of Equations: The 50 Greatest Equations and How They Work》 ,讲的是最伟大的数学方程式起源、构成、含义和应用。书的内容并不多,我看了其中的一部分,里面有讲 墨卡托投影( \(\textit{Mercator projection}\) )1

我对地理和地图一直很感兴趣,但之前对原理一直一知半解的,只知道我们常见的地图都是墨卡托投影,由墨卡托( \(\textit{Gerardus Mercator}\) )2 在 1569年创立。但墨卡托投影的原理是什么却并不清楚。书里面只有几页,但具体公式缺乏说明及推导过程,所以这几天通过查找资料掌握了墨卡托投影的原理。

如何绘制地图?

在大航海时代,航海家可以通过六分仪和观察日月星辰获取到经纬度,但在茫茫大海中迷失方向是很可怕的事情,如何才能正确的航行到目的地呢?

地球由于自转是一个两极比赤道略短的扁球体,但扁率约为 \(\dfrac {1}{300}\) ,非常之低,因为可以视为球体。因为球面不是可展曲面,也就是如果展成平面的话,长度会发生形变,所以也会形变。因为根据高斯绝妙定理 ( \(\textit{Theorema Egregium}\) )3 ,平面的高斯曲率为 \(0\) ,而球面的高斯曲率为 \(\dfrac {1}{R^2}\) ,其中 \(R\) 为球面半径,所以在保持图形完整性前提下,将球面转化为平面,投影后得到的经纬线网形状必然会产生变形,也就是说,在投影的过程中,变形是必然存在的。

在这种情况下,墨卡托运用等角圆柱投影法绘制了航海图,极大地方便了航海家。有了墨卡托海图,航海家想要到达某个目的地,只需要在出发点和目的地之间连一条直线,量出这条航线和经线的夹角,按照航行路线就能到达目的地。

图1. 地图的墨卡托投影

什么是墨卡托投影?

设想将地球置于在一中空的圆柱里,如下图所示,其基准纬线(赤道)与圆柱相切。再设想地球中心处放置一灯泡,那么从球心处发射的光线会把球面上的图形投影到圆柱体上,之后再将把圆柱体展开,那么就可以得到一张墨卡托投影绘制出的地图。

图2. 墨卡托投影原理

墨卡托公式的推导

\(P(\textit{lng}, \textit{lat})\) 表示投影前的球面上的点,在数学上我们常使用弧度制,则表示为 \(P(\lambda , \varphi )\) ,其中 \(\lambda = \textit{lng} \cdot \dfrac{\pi}{180} , \quad \varphi = \textit{lat} \cdot \dfrac{\pi}{180}\) ,所以墨卡托投影就是将球面上的 \(P(\lambda , \varphi )\) 转换为平面直角坐标系 \(P' (x, y)\) ,即定义为下面的一个映射:

\[ f: P \rightarrow P' \]

那么则有函数 \(f_x\)\(f_y\)

\[ \left\{ \begin{aligned} x &= f_x(\lambda , \varphi ) \\ y &= f_y(\lambda , \varphi ) \\ \end{aligned} \right. \]

如下图,图中由经纬线分割出的方块区域 \(\Box KPMQ\) 映射为 \(\Box K'P'M'Q'\) ,如果 \(P\)\(Q\) 点足够近的话,那么 \(\Box KPMQ\) 可以近似为矩形。

图3. 球面上的无穷小

\(P\) 的经纬度为 \([\lambda , \varphi ]\) ,相邻点 \(Q\) 的经纬度为 \([\lambda + \mathrm{d}\lambda , \varphi + \mathrm{d}\varphi]\) ,那么平行赤道的纬线所在圆的半径 \(r = R \cos \varphi\) ,则有圆弧:

\[ PM = r \times \mathrm{d} \lambda = R \cos \varphi \mathrm{d} \lambda \]

,圆弧 \(PK = R \mathrm{d} \varphi\) 。投影变换后平面上的矩形长宽分别为 \(\mathrm{d} x\)\(\mathrm{d} y\)

在变换后,在微观局部应该保持长宽比例不变,那么:

\[ \frac{R \cdot \mathrm{d} {\varphi}}{\mathrm{d} y} = \frac{R \cdot \cos \varphi \cdot \mathrm{d} \lambda }{\mathrm{d} x} \]

另外也可以根据墨卡托投影是等角投影4\(\angle \alpha = \angle \beta\) ,则有:

\[ \tan \angle \alpha \approx \frac{PM}{QM} = \frac {R \cos \varphi \mathrm{d} \lambda }{R \mathrm{d} \varphi } \]

\[ \tan \angle \beta = \frac{P'M'}{Q'M'} = \frac{\mathrm{d} x}{\mathrm{d} y} \]

那么:

\[ \frac{R \cos \varphi \mathrm{d} \lambda }{R \mathrm{d} \varphi } = \frac {\mathrm{d} x}{\mathrm{d} y} \]

显然同一条经线上的点,变换到墨卡托之后横坐标相同,而横坐标的值就是赤道弧线划过的长度,所以 \(x = R \cdot \lambda\) ,那么 \(\mathrm{d} x = R \times \mathrm{d} \lambda\)

消掉 \(\mathrm{d} x\)\(\mathrm{d} \lambda\) ,可得:

\[ \left \{ \begin{aligned} x'(\lambda ) &= R \\ y'(\varphi ) &= R \cdot \frac{1}{\cos \varphi } \cdot \mathrm{d} {\varphi} = R \sec \varphi \\ \end{aligned} \right. \]

对上式积分可得:

\[ \int \mathrm{d}y = R \int \frac{1}{ \cos \varphi} \mathrm{d}\varphi = R \int \sec \varphi \mathrm{d} \varphi = R \ln (\sec \varphi + \tan \varphi ) + C \]

可得:

\[ y = R \ln \tan (\frac{\pi}{4} + \frac{\varphi }{2}) + C \]

根据初始条件可知 \(C = 0\) ,所以等角投影的公式:

\[ \left \{ \begin{aligned} x & = R(\lambda -\lambda _{0}) \\ y & = R \ln \left[ \tan \left ( {\frac {\pi }{4}} + {\frac {\varphi }{2}} \right ) \right ] \\ \end{aligned} \right. \]

等角航线

之前讲过墨卡托投影的地图上,经线投影成一组平行线,两地之间的等方位角曲线 (Rhumb line) ,在地图上是一条直线。航海家只需要保持方位角不变,不改变航线即可达到终点,所以在航海中得到广泛应用。但这条航线并不是两地之间的最短航线,我们知道球面上两点间最短距离是通过两点间大圆的劣弧,如下图所示。在航海或航空中,运用此特性而走最短距离的航线叫做大圆航线 (Great Circle Route) 。

图4. 大圆航线

参考文献


  1. 墨卡托投影 Mercator projection↩︎

  2. 墨卡托 Gerardus Mercator↩︎

  3. 高斯绝妙定理 Theorema Egregium↩︎

  4. Mercator Projection↩︎