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

推荐订阅源

爱范儿
爱范儿
Security Latest
Security Latest
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
Cybersecurity and Infrastructure Security Agency CISA
Cloudbric
Cloudbric
T
Threat Research - Cisco Blogs
大猫的无限游戏
大猫的无限游戏
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网
C
Cisco Blogs
V
Vulnerabilities – Threatpost
S
Security Archives - TechRepublic
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
J
Java Code Geeks
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Know Your Adversary
Know Your Adversary
博客园 - 叶小钗
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy International News Feed
P
Palo Alto Networks Blog
博客园_首页
V
V2EX
WordPress大学
WordPress大学
Schneier on Security
Schneier on Security
月光博客
月光博客
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
The Cloudflare Blog
罗磊的独立博客
美团技术团队
N
News | PayPal Newsroom
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Last Week in AI
Last Week in AI
K
Kaspersky official blog
Google Online Security Blog
Google Online Security Blog
S
SegmentFault 最新的问题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录 2025 Python 版本性能测试 Flutter Hello World Flutter 安装环境配置 Ubuntu VMware 硬盘扩容后 SMBus Host controller not enabled 报错问题解决 Python NetworkX 教程 Docker GPU 报错 - Failed to initialize NVML Unknown Error 解决方案 Python matplotlib 图表绘制 cuda-toolkit 安装替代 Cuda 与 Cudnn Jinja2 Python 利用 docxtpl 和 Jinja2 生成基于模板的 Word 文档 Docker 实现 CPU 核心隔离 LoFTR 基于 Transformer 的特征提取匹配算法 OmniGlue 特征匹配 SuperGlue 使用图神经网络学习特征匹配 Ubuntu 下将 xlsx 文件按照 sheet 转换为 图片 Python 使用 SQLAlchemy Python FastAPI 教程 openwrt 软路由配置安装 Nav2 地图文件(PGM/YAML)规范标准 3D OBJ 模型转换为 glb 瓦片格式 Python 源码 Redis 数据库介绍 Ubuntu 22.04 内核自动升级导致 MongoDB 7.0.12 错误记录 ubuntu 20.04 安装 ROS Noetic ubuntu 18.04 安装 ROS Melodic VMware Workstation Pro 个人免费版下载、安装、使用指南 Hybrid A-star 路径规划 Reeds-Shepp 曲线 Dubins 曲线 Linux kvm 虚拟机网络不通的问题解决方法 Ubuntu 自动内存清理 BiliBili 缓存视频转 mp4 Python 求解线性规划 3D Gaussian Splatting 官方源码实践记录 ImageMagick 教程 Ubuntu 22.04 安装 Colmap 对数几率 odds Ubuntu nmcli 网络管理工具使用指南 SuperPoint 自监督深度学习特征点提取 SyncTV Music Tag Web 在线音乐信息整理工具 ncm 格式转 mp3 MusicBrainz 音乐元数据百科数据库 Ubuntu 网络流量监控工具 私人云音乐平台 Navidrome 入门 手眼标定 四元数(Quaternions) OHTTPS 实现免费自动 https 证书申请、更新、部署 ubuntu 22.04 安装 CloudCompare 单机 KVM 虚拟机冷迁移 Ubuntu 22.04 使用 mdadm 实现软 raid 小鱼 一键安装 ROS-humble Fluid -46- 基于 Simpletex API 构建公式识别页面 公式识别 API 简介 -- Simpletex 使用 Python web 部署库 waitress 3D Gaussian Splatting for Real-Time Radiance Field Rendering Ubuntu Swap 简介与空间扩展 Ubuntu 24.04 安装 forticlient Clash Verge 使用 MongoDB 7.0.17 集群 Docker 构建源码 Error code - 2013. Lost connection to MySQL server during query 问题解决 Python 日志记录库 loguru 使用指北 Python 实现 Web 日志查看服务 MySQL LOAD DATA LOCAL INFILE 极速数据加载 Image size exceeds limit of 89478485 pixels 解决方案 Docker 使用 NVIDIA GPU 驱动错误解决 阿里云 docker 镜像仓库 Ubuntu中没有wired connected的解决方案 MinIO 简介 subconverter 代理订阅格式转换 修复 node –openssl-legacy-provider is not allowed in NODE_OPTIONS 错误
墨卡托投影法
Yiwei Zhang · 2025-01-06 · via 又见苍岚

麦卡托投影法(英语:Mercator projection),又称麦卡托投影法、正轴等角圆柱投影,是一种等角的圆柱形地图投影法。本文记录相关内容。

简介

麦卡托投影法(Mercator projection)又称正轴等角圆柱投影,由荷兰地图学家墨卡托(G.Mercator)于1569年创拟。就是将三维的地球表示在一个二维平面上的方法之一,也是应用得最广泛的方法。

我们平时看到的谷歌地图,百度地图,包括我们的GeoHey地图,都是使用的墨卡托投影。

它以整个世界范围,赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。

麦卡托投影法假设地球被套在一个圆柱中,赤道与圆柱相切,然后在地球中心放一盏灯,把球面上的图形投影到圆柱体上,再把圆柱体展开,就形成以一幅墨卡托投影的世界地图(如下图)。因其等角特性,广泛应用与航空、航海中。

墨卡托投影,是正轴等角圆柱投影,圆柱投影的一种,为地图投影方法中影响最大的投影。假设地球被围在一中空的圆柱里,其基准纬线(赤道)与圆柱相切,然后再假想地球中心有一盏灯,把球面上的图形投影到圆柱面上,再把圆柱面展开,这就是一幅选定基准纬线上的“墨卡托投影”绘制出的地图。其中,按等角条件将经纬网投影到圆柱面上,将圆柱面展为平面后,得平面经纬线网。

从墨卡托投影图上可以看出,经线间隔的经度如果相等,则经线是等距平行的直线,纬线也是平行的直线,而且经纬线是相互垂直的。

墨卡托投影有一个特别的特性:所有罗盘等角线,或称斜航线(就是与所经过的所有经线形成相同角度的航线,也称恒向航线)在墨卡托投影下都是直线。这使得在航海领域这个投影非常重要。

墨卡托投影对透视圆筒投影改造点:要使圆筒投影称为等角的性质,必须使由赤道向两极经线逐渐伸长的倍数与经线上各点相应的纬度扩大的倍数相同。

该方法得名于法兰德斯(佛兰德)出身的地理学家杰拉杜斯·麦卡托,他于1569年发表长202公分、宽124公分以此方式绘制的世界地图。在以此投影法绘制的地图上,将地球在平面展开,经纬线于任何位置皆垂直相交,使世界地图可以绘制在一个长方形,地图的任一点在各种方向的长度均相等。由于可显示任两点间的正确方位,指出真实的经纬度,航海用途的海图、航路图大都以此方式绘制。在该投影中线型比例尺在图中任意一点周围都保持不变,从而可以保持大陆轮廓投影后的角度和形状不变(即等角);但麦卡托投影会使面积产生变形,赤道地区变化最小,南北两极的变形最大,但因为在南北回归线之间影响很少,而这是多数航线所在区域,所以被广泛用来编制地图。

由于可显示任两点间的正确方位,航海用途的海图、航路图大都以此方式绘制。在该投影中线型比例尺在图中任意一点周围都保持不变,从而可以保持大陆轮廓投影后的角度和形状不变(即等角);但墨卡托投影会使面积产生变形,极点的比例甚至达到了无穷大。

等角投影

等角投影(Azimuthal Equidistant Projection)是一种地图投影方法,它保持了从投影中心到任何其他点的角度不变。这意味着,在等角投影中,所有从中心点出发到地图上任意点的方向都是准确的,因此它非常适合于导航和定位。

以下是等角投影的一些关键特点:

  1. 角度保持:从投影中心到地图上任意点的方向角(方位角)是保持不变的。这意味着,如果你从中心点测量到另一个点的角度,并沿着这个角度移动,你会在实际地球上沿着相同的方向移动。
  2. 距离失真:虽然角度保持不变,但距离在等角投影中并不是保持不变的。从投影中心向外,距离会逐渐增大,因此这种投影不适合表示面积或距离。
  3. 单一中心点:每个等角投影都有一个中心点,从这个点出发的角度是准确的。离开这个中心点越远,距离和面积的失真就越大。
  4. 圆形特征:在等角投影中,经线和纬线通常呈现为从中心点向外辐射的圆形。所有通过中心点的经线都是直线,而纬线则是圆弧。

等角投影常用于以下情况:

  • 航海和飞行导航,因为它保持了方向的真实性。
  • 表示以某个特定点为中心的区域,例如城市服务区域或军事行动区域。

"形状不变"的含义是,地图上的图形(如三角形)与地球表面上的对应图形在角度和比例上保持一致。例如,如果地球表面上有一个等边三角形,那么在等角投影的地图上,这个三角形也将是等边的,尽管它的面积和形状可能会因为投影而变形。重要的是,所有内部角度和相对边的比例保持不变。

等角投影的一个常见例子是极射赤平投影(Stereographic projection),它将地球表面投影到一个平面上,使得北极或南极成为投影的中心点。这种投影在极地地区特别有用。

Google 等地图为什么选择墨卡托投影

墨卡托投影的“等角”特性,保证了对象的形状的不变行,正方形的物体投影后不会变为长方形。“等角”也保证了方向和相互位置的正确性,因此在航海和航空中常常应用,而Google们在计算人们查询地物的方向时不会出错。墨卡托投影的“圆柱”特性,保证了南北(纬线)和东西(经线)都是平行直线,并且相互垂直。而且经线间隔是相同的,纬线间隔从标准纬线(此处是赤道,也可能是其他纬线)向两级逐渐增大。但是,“等角”不可避免的带来的面积的巨大变形,特别是两极地区,明显的如格陵兰岛比实际面积扩大了N倍。

投影过程

将地球展开成一个圆柱,再将圆柱展开成平面

从球心出发射出一条直线,它与球的交点投影后的位置就是这条线与圆柱的交点。

当然,中间的计算过程中会做一些取舍。

从上图中可以看出,X轴的刻度是等距的,Y轴方向越靠近两极变形越大。

墨卡托投影范围

由于墨卡托投影在两极附近是趋于无限值得,因此它并没完整展现了整个世界,地图上最高纬度是 85.05 度。为了简化计算,采用球形映射,而不是椭球体形状。虽然采用墨卡托投影只是为了方便展示地图,需要知道的是,这种映射会给Y轴方向带来0.33%的误差。

  • 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)。

墨卡托投影网格

数学计算

下列公式在使用墨卡托投影的地图中,从纬度 φ 和经度 λ (其中 $λ_0$是本初子午线) 推导为坐标系中的坐标 $x$ 和 $y$。

  • 古德曼函数的逆推导:

λ, φ -> x, y

$$ \begin{aligned} & \mathrm{x}=\lambda-\lambda_{0} \\ & \mathrm{y}=\ln\left(\tan\left(\frac{\pi}{4}+\frac{\varphi}{2}\right)\right) \\ & =\frac{1}{2}\ln\left(\frac{1+\sin(\varphi)}{1-\sin(\varphi)}\right) \\ & =\tanh^{-1}(\sin(\varphi)) \\ & =\sinh^{-1}(\tan(\varphi)) \\ & =\ln(\tan(\varphi)+\sec(\varphi)). \end{aligned} $$

  • 古德曼函数:

x, y -> λ, φ

$$ \begin{array}{c}{{\varphi=2\tan^{-1}(e^{y})-{\frac{\pi}{2}}}}\\ {{=\tan^{-1}(\sinh(y))}}\\ {{\lambda=x+\lambda_{0}.}}\end{array} $$

此处的 $x$ 为坐标 $x / R$, $y$ 为 $y / R$,$R=6378137$

比例尺与纬度 φ 的正割成比例,越趋向极地(φ = ±90°)面积变形越大。此外,由公式可知,极点处的 $y$ 值为正负无穷大。

公式推导

假设地球为正球形。(实际上并非为正球形,而是有扁率的,但制作小比例尺地图时误差可忽略不计。若需更精确,可插入等角纬线。)我们需要将经纬度坐标(λ, φ)转换为笛卡尔坐标(x, y),求以赤道为基准的切柱面投影(即x = λ),并保持形状不变,故:

$$
\frac{\partial x}{\partial\lambda}=\cos(\varphi)\frac{\partial y}{\partial\varphi}
$$

$$
{\frac{\partial y}{\partial\lambda}}=-\cos(\varphi){\frac{\partial x}{\partial\varphi}}
$$

x = λ 可知
$$
\frac{\partial x}{\partial\lambda}=1
$$

$$
{\frac{\partial x}{\partial\varphi}}=0
$$

给出
$$
\cos(\varphi)\frac{\partial y}{\partial\varphi}= 1
$$

$$
{\frac{\partial y}{\partial\lambda}}=0
$$

因此,yφ 的唯一函数,且可得到 $𝑦′=\sec ⁡𝜑$,由积分表
$$
y=\ln(|\sec(\varphi)+\tan(\varphi)|)+C.
$$
在地图中 φ = 0 得到 y = 0,所以取 C = 0.

错觉

对于墨卡托投影来说,越到高纬度,大小扭曲越严重,到两极会被放到无限大,所以,墨卡托投影无法显示极地地区。下图来自维基百科,可以看到墨卡托投影下每个国家的大小和实际大小的差异。但是 conformality(正形性) 和 straight rhumb lines 这两个特点,让它非常适合于航海导航。

由于麦卡托投影在高纬度过分放大,低纬度又过分缩小,因此会产生有趣的错觉。比如世界第一大岛高纬度的格陵兰比澳洲看起来还大好几倍。世界第二大岛低纬度的新几内亚和日本差不多大小。然而新几内亚岛面积足足是日本的2倍。

参考资料

文章链接:
https://www.zywvvd.com/notes/study/gis/mercator-proj/mercator-proj/