墨卡托投影

墨卡托投影将地球球面投影到一个圆柱体柱面上,将地球看作一个正球体时,以OOO为地球球心,从球心向外辐射射线,与地球外接圆柱面交与P′P'P′。
设纬度为 ϕ\phiϕ,经度为λ\lambdaλ,其中:

ϕ∈(−π2,π2)\phi\in(-\frac{\pi}{2},\frac{\pi}{2}) ϕ∈(−2π​,2π​)λ∈(−π,π)\lambda\in(-\pi,\pi) λ∈(−π,π)

对于经纬度为( ϕ\phiϕ,λ\lambdaλ)的坐标点,投影到圆柱面的坐标为(Rtan⁡ϕR\tan\phiRtanϕ,RλR\lambdaRλ),坐标轴分别与柱面高以及柱面弧平行,设经度轴为xxx轴,纬度轴为yyy轴。
投影后,xxx最大取值为赤道长,即xmax=2πRx_{max}=2\pi Rxmax​=2πR,而ymax=2Rtan⁡ϕmaxy_{max}=2R\tan\phi_{max}ymax​=2Rtanϕmax​,其中RRR为球半径。
由于投影将圆柱面投影成正方形,长宽相等,则:

xmax=ymaxx_{max}=y_{max} xmax​=ymax​

即:

2πR=2Rtan⁡ϕmax(1)2\pi R=2R\tan\phi_{max} (1) 2πR=2Rtanϕmax​(1)

墨卡托投影防畸变处理

墨卡托投影将地球映射成了一个经纬度均匀分布的坐标系,由于将球体直接投影到柱面时经度是均匀的而纬度是不均匀的,所以地图需要对纬度进行防畸变处理。下面讨论纬度ϕ\phiϕ与畸变处理后地图纵坐标yyy的函数关系。

PPP点在地球上的经度为λ\lambdaλ,纬度为ϕ\phiϕ,设QQQ点为地球上与PPP点无限接近的一点,则QQQ点经纬度分别为λ+Δλ\lambda+\Delta\lambdaλ+Δλ、ϕ+Δϕ\phi+\Delta\phiϕ+Δϕ。
PPP、MMM所在纬线圈的半径
r=Rcos⁡ϕr=R\cos\phir=Rcosϕ
其中RRR为赤道圆半径。

由于PPP、MMM在同一纬线圈上,所以PMPMPM间的弧长为它们纬线圈半径与两点经度差之积,即:
PM=r∗Δλ=RΔλcos⁡ϕPM=r*\Delta\lambda=R\Delta\lambda\cos\phi PM=r∗Δλ=RΔλcosϕQM=R∗ΔϕQM=R*\Delta\phiQM=R∗Δϕ

P′P'P′、Q′Q'Q′为地球上点PPP、QQQ由墨卡托投影变换得到的点,此坐标系下经度、纬度线的分布都是均匀的,xxx、yyy为地图坐标系,不再代表经纬度。所以P′M′=ΔxP'M'=\Delta xP′M′=ΔxQ′M′=ΔyQ'M'=\Delta yQ′M′=Δy
因为投影后将每一个纬线圈都放大到与赤道圆相同大小,所以投影后Δx\Delta xΔx长度就是P′P'P′、M′M'M′经度夹角与赤道圆半径的乘积,即:
Δx=RΔλ\Delta x=R\Delta\lambdaΔx=RΔλ
由于投影后需要保证航线角相同,所以:
PMQM=P′M′Q′M′\frac{PM}{QM}=\frac{P'M'}{Q'M'} QMPM​=Q′M′P′M′​即RΔλcos⁡ϕRΔϕ=ΔxΔy\frac{R\Delta\lambda\cos\phi}{R\Delta\phi}=\frac{\Delta x}{\Delta y} RΔϕRΔλcosϕ​=ΔyΔx​⇒ΔyΔϕ=ΔxΔλcos⁡ϕ\Rightarrow\frac{\Delta y}{\Delta\phi}=\frac{\Delta x}{\Delta\lambda\cos \phi}⇒ΔϕΔy​=ΔλcosϕΔx​⇒ΔyΔϕ=RΔλΔλcos⁡ϕ=Rcos⁡ϕ\Rightarrow\frac{\Delta y}{\Delta\phi}=\frac{R\Delta\lambda}{\Delta\lambda\cos\phi}=\frac{R}{\cos\phi}⇒ΔϕΔy​=ΔλcosϕRΔλ​=cosϕR​
根据导数定义,上式即:y′(ϕ)=Rcos⁡ϕy^\prime(\phi)=\frac{R}{\cos\phi}y′(ϕ)=cosϕR​
下面积分求y(ϕ)y(\phi)y(ϕ)就可以了:
y(ϕ)=∫y′(ϕ)dϕ=R∫1cos⁡ϕdϕy(\phi)=\int y^\prime(\phi)d\phi=R\int\frac{1}{\cos\phi}d\phi y(ϕ)=∫y′(ϕ)dϕ=R∫cosϕ1​dϕ=R∫1cos⁡2ϕdsin⁡ϕ=R∫11−sin⁡2ϕdsin⁡ϕ=R\int\frac{1}{\cos^2\phi}d\sin\phi=R\int\frac{1}{1-\sin^2\phi}d\sin\phi =R∫cos2ϕ1​dsinϕ=R∫1−sin2ϕ1​dsinϕ
设t=sin⁡ϕt=\sin\phit=sinϕ,
y(ϕ)=R∫11−t2dt=R2∫(11+t+11−t)dty(\phi)=R\int\frac{1}{1-t^2}dt=\frac{R}{2}\int(\frac{1}{1+t}+\frac{1}{1-t})dt y(ϕ)=R∫1−t21​dt=2R​∫(1+t1​+1−t1​)dt
易得:
y(ϕ)=R2ln⁡∣1+t1−t∣=R2ln⁡∣1+sin⁡ϕ1−sin⁡ϕ∣y(\phi)=\frac{R}{2}\ln|\frac{1+t}{1-t}|=\frac{R}{2}\ln|\frac{1+\sin\phi}{1-\sin\phi}| y(ϕ)=2R​ln∣1−t1+t​∣=2R​ln∣1−sinϕ1+sinϕ​∣=R2ln⁡∣(1+sin⁡ϕ)21−sin⁡2ϕ∣=Rln⁡1+sin⁡ϕcos⁡ϕ=\frac{R}{2}\ln|\frac{(1+\sin \phi)^2}{1-\sin^2\phi}|=R\ln\frac{1+\sin \phi}{\cos \phi}=2R​ln∣1−sin2ϕ(1+sinϕ)2​∣=Rlncosϕ1+sinϕ​
由反双曲正切函数arctanh⁡x=12ln⁡1+x1−xarc\tanh x=\frac{1}{2}\ln\frac{1+x}{1-x}arctanhx=21​ln1−x1+x​可知,y(ϕ)y(\phi)y(ϕ)还可以表示成:
y(ϕ)=Rarctanh⁡(sin⁡ϕ)\color{red}y(\phi)=Rarc\tanh(\sin\phi) y(ϕ)=Rarctanh(sinϕ)

或者由反双曲正弦函数arcsinh⁡x=ln⁡(x+x2+1)arc\sinh x=\ln(x+\sqrt{x^2+1})arcsinhx=ln(x+x2+1​)可将y(ϕ)y(\phi)y(ϕ)变形为:
y(ϕ)=Rln⁡1+sin⁡ϕcos⁡ϕ=Rln⁡(tan⁡ϕ+1cos⁡ϕ)y(\phi)=R\ln\frac{1+\sin \phi}{\cos \phi}=R\ln(\tan\phi+\frac{1}{\cos\phi}) y(ϕ)=Rlncosϕ1+sinϕ​=Rln(tanϕ+cosϕ1​)=Rln⁡(tan⁡ϕ+sin⁡2ϕ+cos⁡2ϕcos⁡2ϕ)=R\ln(\tan\phi+\frac{\sqrt{\sin^2\phi+\cos^2\phi}}{\sqrt{\cos^2\phi}})=Rln(tanϕ+cos2ϕ​sin2ϕ+cos2ϕ​​)=Rln⁡(tan⁡ϕ+tan⁡2ϕ+1)=R\ln(\tan\phi+\sqrt{\tan^2\phi+1})=Rln(tanϕ+tan2ϕ+1​)=Rarcsinh⁡(tan⁡ϕ)\color{red}=Rarc\sinh (\tan\phi)=Rarcsinh(tanϕ)

经过畸变后,(1)式可变为:
2πR=2∗Rarctanh⁡(sin⁡ϕmax)2\pi R=2*Rarc\tanh(\sin\phi_{max}) 2πR=2∗Rarctanh(sinϕmax​)

解出:

ϕmax≈±85.05∘\phi_{max}\approx\pm85.05^\circ ϕmax​≈±85.05∘

则墨卡托投影出来的地图纬度只能表示到±85.05∘\pm85.05^\circ±85.05∘,此时经度取值范围为(−π,π)(-\pi,\pi)(−π,π)。

地图瓦片最大最小经纬度计算

最大最小经度

设瓦片最小经度为lonnxminlon_{n_{xmin}}lonnxmin​​,最大经度为lonnxmaxlon_{n_{xmax}}lonnxmax​​,每行或列瓦片个数为nnn瓦片经度编号为nxn_xnx​,由于经度的分布是均匀的,所以(按照弧度计算):
lonnxmin−(−π)2π=nxn\frac{lon_{n_{xmin}}-(-\pi)}{2\pi}=\frac{n_x}{n} 2πlonnxmin​​−(−π)​=nnx​​
很容易解出
lonnxmin=nx∗2πn−π\color{red}lon_{n_{xmin}}=\frac{n_x*2\pi}{n}-\pi lonnxmin​​=nnx​∗2π​−π

最大最小纬度

找出两组等比例关系放在等式左右两边:

  1. 地球球面上北极到瓦片最小纬度的弧长,与地球半球(半个经线圈)弧长,即图中红色弧长与半圆总弧长之比
  2. 经过墨卡托投影及放畸变处理后红色弧长投影与地图纵向总长度之比,即图中红色线段与线段总长度只比

列出等式,注意由于地图是正方形的,所以纵向总长度为2πR2\pi R2πR:

nyn=πR−y(latnmin)2πR=πR−Rarcsinh⁡(tan⁡latnmin)2πR\frac{n_y}{n}=\frac{\pi R-y(lat_{nmin})}{2\pi R}=\frac{\pi R-Rarc\sinh (\tan lat_{nmin})}{2\pi R} nny​​=2πRπR−y(latnmin​)​=2πRπR−Rarcsinh(tanlatnmin​)​
其中瓦片编号为nyn_yny​,从而很容易解出:
latnmin=arctan⁡(sinh⁡π(1−2yn))\color{red}lat_{nmin}=arc\tan(\sinh\pi(1-\frac{2y}{n})) latnmin​=arctan(sinhπ(1−n2y​))
最大经纬度直接将nxn_xnx​、nyn_yny​替换成nx+1n_x+1nx​+1、ny+1n_y+1ny​+1即可

墨卡托投影原理及瓦片公式推导相关推荐

  1. CRC并行运算原理分析,公式推导及MATLAB实现,并行CRC Verilog代码生成

    本文参考了博客:https://blog.csdn.net/qq_16923717/article/details/83826856,但是对文章里面的推导和MATLAB实现有点看不太懂+ +,但是这篇 ...

  2. 【深度学习】语音识别之CTC算法原理解释与公式推导

    不搞语音识别得人开这个论文确实有点费劲,结合上图,思考一下语音识别的场景,输入是一段录音,输出是识别的音素, 输入的语音文件的长度和输出的音素个数之间没有一一对应关系,通常将语音文件「分片」之后,会出 ...

  3. 逻辑回归原理理解及公式推导

    1.算法介绍 (1)逻辑回归(Logistics Regression)是一种分类模型,常用于二分类问题. (2)我们可以用一句话来表示逻辑回归:逻辑回归是假设数据服从伯努利分布,基于最大似然估计推导 ...

  4. 墨卡托投影与瓦片地图

    目录 一.开胃小知识 二.墨卡托投影 1.什么是墨卡托投影? 2.墨卡托投影的特点 3.墨卡托投影的缺点 三.瓦片地图 1.GIS介绍 2.瓦片地图原理 四.瓦片地图原理---续 1.经纬度 2.投影 ...

  5. 墨卡托投影坐标系(Mercator Projection)原理及实现C代码

    转:https://www.cnblogs.com/DHUtoBUAA/p/6706642.html 墨卡托投影是一种"等角正切圆柱投影",荷兰地图学家墨卡托(Mercator)在 ...

  6. 地图瓦片相关学习总结

    瓦片地图 瓦片地图金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示 的地理范围不变. 中文名 瓦片地图 模    型层次模型 软    件ArcGIS软件 发     ...

  7. Google瓦片地图算法解析

    基本概念: 地图瓦片地址:http://mt2.google.cn/vt/lyrs=m@167000000&hl=zh-CN&gl=cn&x=420&y=193& ...

  8. 瓦片地图面面观之投影

    投影 对于地图制图:原面为地球的旋转椭球面,是三维的:承受面(对瓦片地图而言为瓦片)为二维平面的.如何在原面与承受面之间建立点.线.面的一一对应关系是地图制图的必须过程,这一过程通常称之为:地图投影. ...

  9. python爬取pbf格式的矢量瓦片并转换为shp使用

    一.原理 1.瓦片地图原理:瓦片地图原理- 简书 (jianshu.com) 二.过程 爬取数据 1.找到矢量瓦片服务地址,以及瓦片的请求规则,构造请求url 2.计算瓦片范围,通过查看服务参数信息, ...

  10. XGBoost原理及目标函数推导详解

    前言 XGBoost(eXtreme Gradient Boosting)全名叫极端梯度提升,XGBoost是集成学习方法的王牌,在Kaggle及工业界都有广泛的应用并取得了较好的成绩,本文较详细的介 ...

最新文章

  1. 博客 rss 如何使用_如何使用RSS从您的GatsbyJS博客自动交叉发布
  2. 大数据分布式集群搭建(4)
  3. AI人才「用工荒」如何解决?看看这几家顶级公司的应对策略
  4. python 处理url 参数_Python 优雅的处理网页URL参数
  5. 项目管理中的客户需求变更时需求分析和解决方法
  6. 软件测试文档在哪里,软件测试报告技术文档
  7. Tez UI界面一直处于loading
  8. mysql下载哪一代版本好_潮一代更好的设计
  9. 课时20:内嵌函数和闭包
  10. 巧用windows xp远程桌面web连接
  11. oracle批量构造数据,oracle批量构造数据方法 - rd_clp的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  12. 【飞控理论】【惯性导航基础】什么是欧拉角?为什么会有欧拉角?欧拉角在航空领域的运用?
  13. STL---vector的内存分配策略
  14. 快速切换npm源的开源工具--nrm
  15. 百度技术类笔试题经验
  16. Xcode可以清理哪些缓存?
  17. BZOJ 4199 品酒大会
  18. 项目管理知识体系指南 (五)
  19. 5.20 按照邮箱账号的域名进行排序 [原创Excel教程]
  20. 如火如荼的人工智能现状

热门文章

  1. user declined directory sharing Creating xxxx
  2. Unity 小程序开发
  3. 解析MOS管推挽电路组成结构和特征优缺点
  4. ICML2022论文解读『Sparse Double Descent: Where Network Pruning Aggravates Overfitting』
  5. IDM统一认证功能说明
  6. 威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复...
  7. 【计量经济学】工具变量估计与两阶段最小二乘法
  8. 前端和后端哪个工资高?
  9. python雷达成像(SAR)仿真:(三)徙动校正+方位压缩(完结)
  10. Cannot resolve the name 'repository:auditing-attributes' to a(n) 'attribute grou