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

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
L
LINUX DO - 最新话题
Recorded Future
Recorded Future
月光博客
月光博客
博客园 - 【当耐特】
博客园 - 叶小钗
宝玉的分享
宝玉的分享
量子位
雷峰网
雷峰网
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Vercel News
Vercel News
L
LangChain Blog
B
Blog
Y
Y Combinator Blog
爱范儿
爱范儿
GbyAI
GbyAI
S
Security @ Cisco Blogs
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
博客园 - Franky
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
云风的 BLOG
云风的 BLOG
C
Cisco Blogs
Scott Helme
Scott Helme
I
Intezer
T
The Exploit Database - CXSecurity.com
MyScale Blog
MyScale Blog
T
Tor Project blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Troy Hunt's Blog
N
News and Events Feed by Topic
大猫的无限游戏
大猫的无限游戏
F
Fortinet All Blogs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Security Affairs
Cyberwarzone
Cyberwarzone
PCI Perspectives
PCI Perspectives
小众软件
小众软件
D
DataBreaches.Net
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Know Your Adversary
Know Your Adversary
Forbes - Security
Forbes - Security
S
Securelist
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
The Last Watchdog
The Last Watchdog

Long Luo's Life Notes

夏至日测地球:利用太阳影子计算地球半径 太阳温度是怎么计算出来的? 《大象的时间,老鼠的时间》读书笔记:生命节奏背后的数学规律 小港流到哪里去? 如何用一根棍子测出地球有多大?复刻埃拉托色尼的春分实验 2007江苏高考数学第20题解析:一道通向黄金分割数的数列压轴题 Google经典面试题: 鸡蛋应该怎么扔? 2010年江苏高考数学压轴题解析:巧用余弦定理与数学归纳法 2011年清华大学自主招生数学题解析:一道经典数列题的解法与思路 2011年清华大学自主招生数学题解析:一道经典数列题的解法与思路 2006年江西高考理科数学压轴题解析:递推、放缩与不等式结构 2006年江西高考理科数学压轴题解析:递推、放缩与不等式结构 一道初中数学极值题的多种解法:柯西不等式、几何法、函数法详解 扔几个骰子,怎么算出期望?——拼多多校招笔试算法题的数学故事 拼多多校招笔试算法题:一行公式搞定“多多的魔术盒子” 斯特林公式(Stirling's Formula):我一个阶乘表达式,怎么就和圆扯上关系了呢? 我爱做题:2010年江西高考理科数学压轴题 热机的效率上限在哪里?解析卡诺循环(Carnot Cycle) 为什么 2024 年会有 366 天? 数学之美:几何视角下的高斯积分(Gaussian Integral) 从最小二乘法到正态分布:高斯是如何找到失踪的谷神星的? 正态分布(Normal Distribution)公式为什么长这样? 高速公路编号背后的数学密码 2024阿里巴巴全球数学竞赛预选赛试题及解答 库函数 (libm) 是如何计算三角函数值的? payne hanek 归约算法 音乐背后的数学 素描背后的物理 cody waite 浮点数 Remez Algorithm 参数归约算法(Argument Range Reduction):如何在浮点数环境下计算超大数字的三角函数值? 素描背后的数学 发生在计算机内存里的进化:解密遗传算法(Genetic Algorithm) CORDIC算法:一种高效计算三角函数值的方法 PID 算法到底在干什么?工程师最常用的控制方法 解密卡尔曼滤波(Kalman Filter)算法:深入解析卡尔曼滤波算法原理与在线可视化实例 从记忆到洞察:轻松掌握泰勒展开式(Taylor Series)的记忆技巧 哪个更大呢? $2^{100!}$ 还是 $2^{100}!$ ? Google经典编程竞赛题:计算 $(3 + \sqrt{5})^n$ 的小数点前三位数 手写数字识别:解码机器学习的背后的数学原理 The Answers of MRI Tutorial Videos gdb 操作指南 Linux 网络命令指南 贝塞尔曲线(Bezier Curve):优雅背后的数学原理 LeetCode 380. Insert Delete GetRandom O(1) Data Structures: Thought Process from HashMap to HashMap + Array LeetCode 2475. 数组中不等三元组的数目 2种 O(n) 时间复杂度算法 LeetCode 947. Most Stones Removed with Same Row or Column It is Literally a Graph: DFS and Union Find LeetCode 295. Find Median from Data Stream Two Heaps with the Follow Ups LeetCode 295. Find Median from Data Stream Two Heaps with the Follow Ups LeetCode 1668. 最大重复子字符串 不用API,比KMP更易理解简洁优雅的暴力解法 LeetCode 334. Increasing Triplet Subsequence Why Greedy Works? LeetCode 迷宫问题(The Maze)
墨卡托的魔术:地图是如何欺骗你的眼睛的?
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↩︎