地图投影中的墨卡托投影

文章详细介绍了地图投影中的墨卡托投影,这是一种等角正轴圆柱投影方法。内容包括投影的基础定义、变形类型(长度、面积、角度)以及变形椭圆的概念。特别地,文章通过数学推导展示了如何从球面坐标转换到平面坐标,同时保持角度不变形,适合航海和地图制作。此外,还提供了两种不同的计算墨卡托投影的实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地图投影中的墨卡托投影

1、基础和定义
  • R R R 地球半径
  • 弧长公式 l = R α l = R \alpha l=Rα
2、地图投影的定义

地图投影: 一种将球面上的点转换为平面上的点的方法。

请添加图片描述

目标是建立平面上的点(平面直角坐标系)和球面上的点(经纬度)之间的函数关系。
x = f 1 ( ϕ , γ ) y = f 2 ( ϕ , γ ) x = f1(\phi, \gamma) \\ y = f2(\phi, \gamma) \\ x=f1(ϕ,γ)y=f2(ϕ,γ)

2、地图投影变形

投影变形分为: 长度变形, 面积变形, 角度变形。

请添加图片描述

1) 长度变形

长度比 : μ = d s ′ / d s = A ′ B ′ A B 长度比: \mu = ds'/ds = \frac{A'B'}{AB} 长度比:μ=ds/ds=ABAB

2) 面积变形

面积比 : P = d F ′ / d F = S A ′ B ′ C ′ D ′ S A B C D 面积比: P = dF'/dF = \frac{S_{A'B'C'D'}}{S_{ABCD}} 面积比:P=dF/dF=SABCDSABCD

3) 角度变形
Δ u = μ − μ ′ = ( 180 − 2 α ) − ( 180 − 2 α ′ ) = 2 ( α − α ′ ) \begin{aligned} \Delta u &= \mu - \mu' \\ &= (180 - 2 \alpha) - (180 - 2 \alpha') \\ &= 2(\alpha - \alpha') \end{aligned} Δu=μμ=(1802α)(1802α)=2(αα)

请添加图片描述

A点的坐标为(x, y)
A’点的坐标为(x’, y’)

t a n   α = y x , t a n   α ′ = y ′ x ′ tan \thinspace \alpha = \frac{y}{x}, \quad tan \thinspace \alpha' = \frac{y'}{x'} tanα=xy,tanα=xy

a极大经度长度比, b极大纬度长度比,有:
a = y x , b = y ′ y a = \frac{y}{x}, \quad b = \frac{y'}{y} a=xy,b=yy

有:
t a n   α ′ = b y a x = b a t a n   α tan \thinspace \alpha' = \frac{by}{ax} = \frac{b}{a} tan \thinspace \alpha tanα=axby=abtanα

将上式两边用 t a n   α tan \thinspace \alpha tanα 各减和加 即:
t a n   α − t a n   α ′ = t a n   α − b a t a n   α = t a n   α ( 1 − b a ) tan \thinspace \alpha - tan \thinspace \alpha' = tan \thinspace \alpha - \frac{b}{a} tan \thinspace \alpha = tan \thinspace \alpha(1-\frac{b}{a}) tanαtanα=tanαabtanα=tanα(1ab)

t a n   α + t a n   α ′ = t a n   α + b a t a n   α = t a n   α ( 1 + b a ) tan \thinspace \alpha + tan \thinspace \alpha' = tan \thinspace \alpha + \frac{b}{a} tan \thinspace \alpha= tan \thinspace \alpha(1 + \frac{b}{a}) tanα+tanα=tanα+abtanα=tanα(1+ab)

因为:
t a n   a + t a n   b = s i n   a c o s   a + s i n   b c o s   b = s i n   a   c o s   b + s i n   b   c o s   a c o s   a   c o s   b = s i n   ( a + b ) c o s   a   c o s   b \begin{aligned} tan \thinspace a + tan \thinspace b &= \frac{sin \thinspace a}{cos \thinspace a} + \frac{sin \thinspace b}{cos \thinspace b} \\ &= \frac{sin \thinspace a \thinspace cos \thinspace b + sin \thinspace b \thinspace cos \thinspace a}{cos \thinspace a \thinspace cos \thinspace b} \\ &= \frac{sin \thinspace (a+b)}{cos \thinspace a \thinspace cos \thinspace b} \end{aligned} tana+tanb=cosasina+cosbsinb=cosacosbsinacosb+sinbcosa=cosacosbsin(a+b)

所以:
s i n ( α − α ′ ) c o s α   c o s α ′ = a − b a t a n α \frac{sin(\alpha - \alpha')}{cos \alpha \thinspace cos \alpha'} = \frac{a-b}{a} tan \alpha cosαcosαsin(αα)=aabtanα

s i n ( α + α ′ ) c o s α   c o s α ′ = a + b a t a n α \frac{sin(\alpha + \alpha')}{cos \alpha \thinspace cos \alpha'} = \frac{a+b}{a} tan \alpha cosαcosαsin(α+α)=aa+btanα

将上面两个式子相除有:
s i n ( α − α ′ ) s i n ( α + α ′ ) = a − b a + b \frac{sin(\alpha - \alpha')}{sin(\alpha + \alpha')} = \frac{a-b}{a+b} \\ sin(α+α)sin(αα)=a+bab

有:
s i n ( α − α ′ ) = a − b a + b s i n ( α + α ′ ) sin(\alpha - \alpha') = \frac{a-b}{a+b} sin(\alpha + \alpha') sin(αα)=a+babsin(α+α)

那么任意角度变形 Δ u \Delta u Δu:
s i n ( Δ u 2 ) = a − b a + b s i n ( α + α ′ ) sin(\frac{\Delta u}{2}) = \frac{a-b}{a+b} sin(\alpha + \alpha') sin(2Δu)=a+babsin(α+α)

那么最大度变形 ω \omega ω:
s i n ( ω 2 ) = a − b a + b sin(\frac{\omega}{2}) = \frac{a-b}{a+b} sin(2ω)=a+bab

等角变换
如果是等角变换,那么 Δ u = ω = 0 \Delta u = \omega = 0 Δu=ω=0, 那么 a = b a = b a=b
请添加图片描述

4) 变形椭圆
上面三种变形都可以使用变形椭圆来刻画。

在球面上取一个微分圆,投影到球面上会变成一个椭圆。这种方法叫变形椭圆。
请添加图片描述

图片出处-新编地图学教程第二章

m m m经线长度比, n n n纬线长度比。
X ′ X = m Y ′ Y = n \frac{X'}{X} = m \quad\frac{Y'}{Y} = n XX=mYY=n

带入到圆公式 x 2 + y 2 = 1 x^2 + y^2 = 1 x2+y2=1, 有:
X ′ 2 m 2 + Y ′ 2 n 2 = 1 \frac{X'^2}{m^2} + \frac{Y'^2}{n^2} = 1 m2X′2+n2Y′2=1

因此说明, 地球面上的微小圆,投影后通常会变为椭圆。

3、圆柱投影

当圆柱的中心轴与地球自转轴重合时, 称为正圆柱投影。
当圆柱的中心轴与地球自转轴垂直时, 横为正圆柱投影。

请添加图片描述

正圆柱投影特点:

  • 纬线是一组彼此平行的直线。
  • 经线是一组垂直于纬线的直线,且经线间隔相等

请添加图片描述

4、墨卡托投影

等角正轴圆柱投影。由荷兰地图学家墨卡托(Mercator Gerardus,1512—1594)于1569年所创设,故又名墨卡托投影。
请添加图片描述

推导方式1

参考

其中 R R R 是地球半径, 经度 λ \lambda λ,纬度 ϕ \phi ϕ:
ϕ ∈ ( − π 2 , π 2 ) \phi\in(-\frac{\pi}{2},\frac{\pi}{2}) \\ ϕ(2π,2π)

λ ∈ ( − π , π ) \lambda\in(-\pi,\pi) \\ λ(π,π)

B、C所在纬线圈的半径:
r = R c o s ϕ r = R cos \phi r=Rcosϕ

BC的弧长为纬线圈半径与两点经度差之积:
B C = r Δ λ = R c o s ϕ Δ λ BC = r \Delta \lambda = R cos \phi \Delta \lambda BC=rΔλ=RcosϕΔλ

A B = R Δ ϕ AB = R \Delta \phi AB=RΔϕ

投影到平面后:
B ′ C ′ = Δ x A ′ B ′ = Δ y B'C' = \Delta x \\ A'B' = \Delta y \\ BC=ΔxAB=Δy

因为投影后将每一个纬线圈都放大到与赤道圆相同大小,所以投影后 Δ x \Delta x Δx长度就是A’D’经度夹角与赤道圆半径的乘积,即:
Δ x = R Δ λ \Delta x = R \Delta \lambda Δx=RΔλ

由于投影后需要保证航线角相同,所以:
B C A B = B ′ C ′ A ′ B ′ \frac{BC}{AB} = \frac{B'C'}{A'B'} ABBC=ABBC

带人有:
R c o s ϕ Δ λ R Δ ϕ = Δ x Δ y \frac{R cos \phi \Delta \lambda}{R \Delta \phi} = \frac{\Delta x}{\Delta y} \\ RΔϕRcosϕΔλ=ΔyΔx

⇒ Δ y Δ ϕ = Δ x Δ λ cos ⁡ ϕ \Rightarrow \frac{\Delta y}{\Delta\phi} = \frac{\Delta x}{\Delta\lambda\cos \phi} \\ ΔϕΔy=ΔλcosϕΔx

⇒ Δ y Δ ϕ = R Δ λ Δ λ cos ⁡ ϕ = R c o s ϕ \Rightarrow \frac{\Delta y}{\Delta\phi} = \frac{R \Delta \lambda}{\Delta\lambda\cos \phi} = \frac{R}{cos \phi} ΔϕΔy=ΔλcosϕRΔλ=cosϕR

根据导数定义,上式即:
y ′ ( ϕ ) = R cos ⁡ ϕ y^\prime(\phi)=\frac{R}{\cos \phi} y(ϕ)=cosϕR

下面积分求 y ( ϕ ) y(\phi) y(ϕ)就可以了:
y ( ϕ ) = ∫ y ′ ( ϕ ) d ϕ = R ∫ 1 cos ⁡ ϕ d ϕ = R ∫ 1 cos ⁡ 2 ϕ d sin ⁡ ϕ = R ∫ 1 1 − sin ⁡ 2 ϕ d sin ⁡ ϕ \begin{aligned} y(\phi) &= \int y^\prime(\phi)d\phi=R\int\frac{1}{\cos\phi}d\phi \\ &= R\int\frac{1}{\cos^2\phi}d\sin\phi=R\int\frac{1}{1-\sin^2\phi}d\sin\phi \end{aligned} y(ϕ)=y(ϕ)dϕ=Rcosϕ1dϕ=Rcos2ϕ1dsinϕ=R1sin2ϕ1dsinϕ

t = sin ⁡ ϕ t = \sin \phi t=sinϕ:
y ( ϕ ) = R ∫ 1 1 − t 2 d t = R 2 ∫ ( 1 1 + t + 1 1 − t ) d t y(\phi)=R\int\frac{1}{1-t^2}dt=\frac{R}{2}\int(\frac{1}{1+t}+\frac{1}{1-t})dt y(ϕ)=R1t21dt=2R(1+t1+1t1)dt

易得:
y ( ϕ ) = R 2 ln ⁡ ∣ 1 + t 1 − t ∣ = R 2 ln ⁡ ∣ 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(ϕ)=2Rln1t1+t=2Rln1sinϕ1+sinϕ

y ( ϕ ) = R 2 ln ⁡ ∣ ( 1 + sin ⁡ ϕ ) 2 1 − sin ⁡ 2 ϕ ∣ = R ln ⁡ 1 + sin ⁡ ϕ cos ⁡ ϕ y(\phi) = \frac{R}{2}\ln|\frac{(1+\sin \phi)^2}{1-\sin^2\phi}|=R\ln\frac{1+\sin \phi}{\cos \phi} y(ϕ)=2Rln1sin2ϕ(1+sinϕ)2=Rlncosϕ1+sinϕ

推导方式2

参考1

参考2
纬度使用 $\theta $ 表示。

x = λ y = f ( ϕ ) \begin{aligned} x &= \lambda \\ y &= f(\phi) \end{aligned} xy=λ=f(ϕ)

投影后的 y y y 坐标是关于纬度 ϕ \phi ϕ 的函数。

请添加图片描述

赤道的周长:
2 π R 2\pi R 2πR

D点所在纬度圆的周长:
2 π R cos ⁡ θ 2 \pi R \cos \theta 2πRcosθ

因为所有纬度投影后都与赤道长度相同, 所以纬度处的任何线 θ \theta θ 最终都会水平拉伸 1 / cos ⁡ θ 1/\cos \theta 1/cosθ

最后,为了满足等角的性质, 地图中水平拉伸某个因子的任何部分,例如 k k k ,必须由相同的因子 $k $垂直拉伸。这样做可以保留地图该部分的角度:
请添加图片描述

因此, 水平方向(x)被拉伸了 1 / cos ⁡ θ 1/\cos \theta 1/cosθ, 那么垂直方向(x)也会被拉伸 1 / cos ⁡ θ 1/\cos \theta 1/cosθ

但是 k x kx kx k y ky ky 这种线性等比缩放只有在这个面积非常小的情况小才成立。用极限表示就是:
l i m Δ θ → 0 Δ y Δ θ = d y d θ = 1 c o s θ lim_{\Delta \theta \to 0} \frac{\Delta y}{\Delta \theta} = \frac{dy}{d\theta} = \frac{1}{cos \theta} limΔθ0ΔθΔy=dθdy=cosθ1

请添加图片描述

实现代码
//方法一
  //[114.32894, 30.585748]
function latLng2WebMercator(lng, lat) {
    var earthRad = 6378137.0;
    var x = lng * Math.PI / 180 * earthRad;
    var a = lat * Math.PI / 180;
    var y = earthRad / 2 * Math.log((1.0 + Math.sin(a)) / (1.0 - Math.sin(a)));

    //[12727039.383734727, 3579066.6894065146]
    return [x, y];
}
//方法二
function latLng2WebMercator2 (lng, lat)
{
    var x = lng *20037508.34/180;
    var y = Math.log(Math.tan((90+lat)*Math.PI/360))/(Math.PI/180);
    y = y *20037508.34/180;
    return [x, y];
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值