原文见我的博客主站,,欢迎大家过去评论。
地图投影,是将地球表面投影到地图平面的过程,将地理坐标转换为平面直角坐标的过程。因为毕业论文需要,我重新回顾了一下地图投影的知识并且作了比较全面且简洁的总结。如果你之前未系统了解过地图投影,又对地图投影感兴趣,这篇博文也许能成为一篇简洁务实的阅读材料。
还有,这篇文章就不考虑大地基准面了,直接把地球当做一个完美的球体来看待。还有,本篇只介绍最基本的三种投影,方位、圆柱、圆锥投影,更多的投影基本是在这三种投影的基础上派生出来的,在了解这三种投影的基础上,去学习和实现其他的派生投影,会比较轻松。
首先看三种最基本的投影系列,方位投影、圆柱投影和圆锥投影。每种投影都按照等面积,等距离,等角和正轴,横轴,斜轴或者其他的性质分成小类。下图显示了方位投影,圆锥投影和圆柱投影的基本样式。
介绍三种投影时,我**只涉及正轴投影**。横轴与斜轴投影转正轴的方法,会在三种投影结束后介绍。
方位投影将球面坐标(经度,纬度)投影到极坐标(半径,方向)上,而且满足球面经度等于极坐标中的方向。其最基本的形式为:
$$\begin{matrix}\rho = f(\psi )\ \delta =\lambda \end{matrix}$$
等式左侧的ρ和δ为投影后的极坐标,右侧的φ和λ为纬度和经度,函数f的形式与形变性质有关。
将极坐标转换为直角坐标很简单:
$$\begin{matrix}x=\rho\cos\delta\ y=\rho\sin\delta\end{matrix}$$
另外,还有一些约定,比如R表示地球半径,他基本会出现在投影公式中(不用担心地图和地球一样大,我们还有比例尺)。还有,d(式子)表示微元,还有西经和南纬都用负值表示,这样纬度区间为[-π/2,π/2],经度区间为[-π,π]。
方位投影中的切投影或割投影区别只在一个比例尺,所以都作为切投影来处理。
在确定函数f之前,首先要求算两个参数,就是经线上的长度比m,和纬线上的长度比n。(长度比就是投影后的长度比投影前的长度)。
$$\begin{matrix}m=\frac{d\rho}{R\cdot d(\pi/2-\delta)}\ n=\frac{\rho d\delta}{R\sin(\pi/2-\delta)\cdot d \lambda}\end{matrix}$$
等面积的条件是:
$$m\cdot n=1$$
$$\rho d\rho=R^2\sin(\pi/2-\psi)d(\pi/2-\psi)$$
积分:
$$\int\rho d\rho=R^2\int \sin(\pi/2-\psi)d(\pi/2-\psi)$$
得
$$\rho=C-R^2\cos(\pi/2-\psi)$$
C为积分常数,配合边界条件,φ=π/2时ρ=0(如果想投影南极,那就φ=-π/2时ρ=0),求得:
$$\rho=2R\sin\frac{\pi/2-\psi}{2}$$
这就是等面积方位投影的函数f。
注意这里等距离只是指经线上等距离。如果想纬线上等距离,那只能显示北半球,南半球的纬线圈肯定比赤道小,但是如果用方位投影,南半球的纬圈在外侧,不可能比赤道小。在北半球,经线上等距离和纬线上等距离不可能同时达到,两者都可以独立地导出互相矛盾的函数f。
等距离的条件是:
$$m=1$$
可导出:
$$\rho=R(\pi/2-\psi)$$
这就是等距离方位投影的函数f。
等角的条件是:
$$m=n$$
可导出
$$\rho=2R\tan\frac{\pi/2-\psi}{2}$$
这就是等角方位投影的函数f。
上述只是一些有着特殊性质的方位投影,事实上,在南北极轴上(也就是垂直于投影面的轴)任意取一个点O,利用透视的方法,将球上每一个点P投影到OP与投影面交点上,都是一个方位投影。比如,等角方位投影就是点O在南极点的投影。
点O在无限远时的方位投影,即正射投影,可用来模拟显示三维地球,其公式为:
$$\rho=R\cos(\psi)$$
点O在地球球心时的投影,即球心投影,其公式为:
$$\rho=R\cot(\psi)$$
使用极轴上的点O进行投影,并不是方位投影的定义。任何符合条件(f(0)=0且在区间0~x之间单调递增)的函数f,就会有一个方位投影与之对应。
正轴圆柱投影将球面投影到二维直角坐标上,而且满足投影后经线与y轴平行,纬线与x轴平行。最基本的形式为:
$$\begin{matrix}y = f(\psi )\ x =c\lambda \end{matrix}$$
经线和纬线方向的长度比m和n分别为:
$$\begin{matrix}m=\frac{dy}{Rd\psi}\ n=\frac{dx}{R\cos{\psi}d\lambda}=\frac{c}{Rcos{\psi}}\end{matrix}$$
还是根据等角,等面积和等距离的条件,积分求算不同条件的投影公式。
$$y=c\ln \tan(\pi/4+\psi/2)$$
该投影又称墨卡托投影,由于其等角特性,在航海图中应用十分广泛。墨卡托投影也是诸多瓦片式Web地图使用的投影,比如Google地图。该投影无法显示极点附近区域,因为在纬度为-π/2或π/2附近时,y趋向负无穷或正无穷。
$$y=R\sin\psi$$
$$c=R$$
$$y=R\psi$$
$$c=R$$
更加一般的表述是,在赤道面上任取一点O,点O将一条经线由球面上,投影到经线所在的子午面与投影圆柱面的交线上。让O点在赤道面上围绕地心旋转2π,就可以将整个地球投影到圆柱面上了。
球面透视切投影,所谓球面透视,就是点O与球心的距离为地球的半径:
$$y=2R\tan\frac{\psi}{2}$$
$$c=R$$
球面透视割投影(ψk和-ψk纬线割,如果ψk=π/4,就是高尔投影):
$$y=R(1+\cos{\psi_k})\tan\frac{\psi}{2}$$
$$c=R\cos{\psi_k}$$
圆锥投影的一般形式(极坐标),其中σ为圆锥常数,即圆锥展开后的扇形角度比上2π:
$$\begin{matrix}\rho = f(\psi )\ \delta =\sigma\lambda \end{matrix}$$
经线长度比m和纬线长度比n为
$$\begin{matrix}m = -\frac{d\rho}{Rd\psi}\ \frac{\sigma\rho}{R\cos\psi} \end{matrix}$$
$$\rho=\frac{K}{\tan^\sigma(\pi/4+\psi/2)}$$
K和σ依赖于投影更具体的性质:
单标准纬线ψ0的等角圆锥投影(即纬度ψ0处的纬线长度比为1),圆锥面切于这条纬线:
$$K=\frac{R\cos{\psi_0}\tan^\sigma(\pi/4+\psi/2)}{\sigma}$$
$$\sigma=\sin{\psi_0}$$
双标准纬线等角切投影(即纬度ψ1和ψ2处长度无变形),圆锥面割于这两条纬线:
$$K=\frac{R\cos{\psi_1}\tan^\sigma(\pi/4+\psi/2)}{\sigma}$$
$$\sigma=\frac{\lg (R\cos{\psi_1})-\lg(R\cos{\psi_2})}{\lg(\tan{\pi/4+\psi_2/2})-\lg(\tan{\pi/4+\psi_1/2})}$$
$$\rho=(\frac{2R^2}{\sigma}(K-\sin\psi))^{\frac{1}{2}}$$
切圆锥投影,切于ψ0:
$$K=\frac{1}{2}(\csc{\psi_0}+\sin{\psi_0})$$
$$\sigma=\sin{\psi_0}$$
割圆锥投影,割于ψ1和ψ2:
$$K=\frac{\sin{\psi_1}\cos^2{\psi_2}-\sin{\psi_2}\cos^2{\psi_2}}{\cos^2{\psi_2}-\cos^2{\psi_1}}$$
$$\sigma=\frac{\cos^2{\psi_2}-\cos^2{\psi_1}}{2(\sin{\psi_1}-\sin{\psi_2})}$$
$$\rho=K-R\rho$$
切圆锥投影,切于ψ0:
$$K=R\cot{\psi_0}+R\psi_0$$
$$\sigma=\sin{\psi_0}$$
割圆锥投影,割于ψ1和ψ2:
$$K=\frac{R\cos{\psi_1}}{\sigma}+R\psi_1$$
$$\sigma=\frac{\cos{\psi_2}-\cos{\psi_1}}{\psi_1-\psi_2}$$
以方位投影为例,南北极轴是与投影面垂直。如果让任意一个轴与投影面垂直,那么就可以得到横轴或斜轴投影。那么,就只需要将点K的地理坐标(λ,ψ)转换为新极点Q(λ0,ψ0)下的球面极坐标(a,Z),然后按照正轴投影处理就可以了,如图所示,点P为北极点。
根据边QK的余弦定理可导出:
$$\cos Z=\sin\psi\sin{\psi_0}+\cos\psi\cos{\psi_0}\cos(\lambda - \lambda_0)$$
由于Z在0~π区间内,所以可以直接求出Z。
以QP作为换算后球面极坐标系下的“本初子午线”,求α:
根据边正弦和邻角余弦之积的定理,有:
$$\sin Z\cos \alpha = \sin\psi\cos{\psi_0}-\cos\psi\sin{\psi_0}\cos(\lambda - \lambda_0)$$
根据正弦定理:
$$\sin Z\sin\alpha=\cos\psi\sin(\lambda - \lambda_0)$$
这样,就可以将地理坐标转换为指定极点的球面极坐标了。获得的极坐标中Z可以很方便地转化(ψ=π/4-Z)为等效的“纬度”,以带入正轴投影公式。