本篇讲坐标系统的详细定义,有关坐标系的变换公式,以及简单说说高程坐标系统。
本文约6000字,阅读时间建议45分钟。硬内容比较多,如有疏漏错误请指出,建议有兴趣的朋友进一步阅读。
作者:博客园/B站/知乎/csdn/小专栏 @秋意正寒
版权:转载请告知,并在转载文上附上转载声明与原文链接(https://www.cnblogs.com/onsummer/p/12082454.html)。
目录
1. 地理坐标系统定义
1.1. 人类对地球形状的描述
人类发现地球是个“赤道稍胖”的椭球后,就打算用一些数学或者物理的手段描述地球的形状。
早期,是用一个叫“大地水准面”的概念描述地球的,这个概念的说法是,地球海水静止后,海水面的形状就是地球的形状(陆地部分则想象海水穿过)。
后来,又提出了“似大地水准面”这一概念,它用的就不是海水面了,而是每个地方的重力线的顶点构成的面。
最后,为了便于数学计算,采用“椭球面”这一数学概念来描述地球形状。
在大地测量学中,“大地水准面”、“似大地水准面”所对应的“正高”、“正常高”是必须熟背于心的,但是在GIS中,本篇只讨论最后一个椭球面。
1.2. 旋转椭球面方程
根据解析立体几何,一个旋转椭球面的方程为:
它是个什么玩意儿呢?它是:
一个椭圆,这个椭圆以短轴为z轴,椭圆心为原点,然后绕z轴旋转而成的曲面。

用平行于xOy平面的面切这个椭球面,相交的形状是一个圆。
1.3. 球面坐标系与经纬度
根据解析立体几何,常用三种三维空间坐标系,笛卡尔空间直角坐标系、球面坐标系、柱面坐标系。
本节回答为什么三维的经纬度只有两个分量的问题。
球面坐标系的定义是怎么样的呢?
球面坐标是三维坐标,自然有三个分量:r、θ、φ
r表示该点到原点的距离;θ表示该点与原点连线和z轴的夹角;φ表示该点与原点连线在xOy平面的投影和x轴的夹角。
那么,经纬度呢?
我们假想x轴是赤道面上这么一根半径所在的直线:这根半径线段与0度经线相交,也即:
同理,y轴、z轴也有类似的定义。
但是,点P(经度,纬度,第三个分量)究竟是什么呢?
其实,经度就是φ,纬度就是θ。
“经度(φ)就是椭球上的点与原点连线这一线段,在赤道平面(xOy平面)上投影与x轴的夹角”——只不过加了东经和西经,并不是0到360°。
“纬度就是椭球上的点与原点连线这一线段,与z轴的夹角的余角。”——赤道上的点与原点连线和z轴的夹角是90度,但是纬度是0度,所以是余角的关系。
所以,第三个分量就十分明确了:r,表示点到原点(椭球心)的距离。但是,为什么平时只用经纬度呢?
那是因为这个r非常大,通常我们谈高度只谈海拔高度,并不谈到地心的距离,所以这个r是被忽略的,这就解释了明明是三维坐标,却只有经纬度两个分量。
如果文字啃得太生硬,可以看下图:
1.4. 椭球与地理坐标系统
根据1.2,得知椭球面方程有两个参数a和b。
根据1.1,得知地球的形状是椭球体,表面是椭球面。
所以,描述地球通常只需要这两个参数即可,我们下一个定义:
定义a为赤道半径,即椭球的长半轴长;
定义b为极半径,即椭球的短半轴长。
赤道半径为地心(椭球心)到赤道任意一点的距离,极半径为地心(椭球心)到任意一个极点的距离。
有这两个参数后,还可以延伸出扁率和偏心率这两个概念。扁率有1个,偏心率则有两个。公式定义如下:
e和e'分别是第一偏心率和第二偏心率。
有了椭球,我们就有了地球的形状。实际上,地理坐标系统(GCS)的定义绝大部分就是由椭球体这两个参数定义的,那么地理坐标系统又是如何定义的呢?
给个公式吧:
GCS = f(椭球体)
f是椭球体的球心对于地球实际中心的偏移。为什么要做偏移?见下节讲解。
1.5. 参心地理坐标系统与地心地理坐标系统
根据1.4,我们知道地理坐标系统是定义在一个数学椭球面上的,具体方程已经给出。
但是还有一个小问题:偏移。
虽然椭球面方程“决定”了地球的形状,但是原点的位置却没有指定。按理说,是统一使用地心才对的,还是处于“懒”,为了方便计算,会直接使用椭球的球心当原点。
事实上,如果地心≠椭球心,椭球面就会比较靠近某个地区,这当然是认为的,这种“靠近”就便于某个国家或地区的计算,因为一旦靠近,很多地方的位置偏差就很小。
我们说,
地心地理坐标系统:椭球的球心=地球的质心
参心地理坐标系统:椭球的球心≠地球的质心
当今为了全球计量需要,有两个我们熟知的地心地理坐标系:WGS84和CGCS2000。
也就是说,北京54和西安80实际上是两个参心坐标系,它们的椭球体分别是克拉索夫斯基1940椭球体和IUGG1975椭球体。
1.6. WKT举例
还是老话,WKT的文章太多了,不再赘述,只摘取一些比较简单的属性讲解。
①WGS84