天天看点

闲聊三维WebGIS中的坐标系

转载请带原出处~全网@秋意正寒 如有错误请指出~

ArcGIS jsAPI

if 投影坐标系

原点在地表(严格来说是椭球面上),y一般朝北,x一般朝东,z一般是地心到原点的向量方向,可以粗略认为是地球表面的一个空间直角局部坐标系。

if 地理坐标系

地理坐标,虽然可以认为是球面坐标系统引申而来,但是将地球展平来看,地理坐标还是二维的。

z只不过是某个坐标点的地面高度(严格来说是相对椭球面)。

Cesium

严格来说,Cesium仅支持一个坐标系:空间直角坐标系,地心为原点,度量衡是米。

Cesium默认的坐标系在 EPSG 是有定义的,WKID是4979,不难得知其地理坐标参考椭球是WGS84

但是,Cesium支持自己new 一个椭球对象作为基础框架,所以椭球是可以自己定义的。

区别

最大的区别就是坐标系的原点,以人的习惯来说,ArcGIS的做法更接近直观。

所以,Cesium中几何体在地球表面的移动,都得经过地心为坐标原点的这个空间直角坐标系的计算,显得比较麻烦。

三维坐标系

可以粗略认为,三维坐标系的定义是由原点、三个方向+单位长度来定义的(精确定义见线性代数)。

椭球体不能叫坐标系,仅仅定义了形状。

WGS84是椭球,WGS84坐标系,或者严格一点,WKID=4326坐标系实际上仍是个二维坐标系,其原点是 经纬度 (0,0),y轴朝正北,x轴朝东,没有高程定义。

我们看到WKID=4979这个坐标系,它不严格说也可以叫 WGS84坐标系,但是,它的原点是在地心,并且指明了三轴朝向,是一个完整的三维坐标系。它的形状由WGS84椭球定义。

XIAN80是二维坐标系,它的地球形状由IAG75椭球体定义,它的原点位于中国陕西西安,正北为y,正东为x,其本身没有z轴的定义。

同理,WKID=4490,即我们熟悉的CGCS2000经纬度,实际上也是二维坐标系,但是官方说 CGCS2000 是三维坐标系,严格来说,是指 CGCS2000 椭球是三维坐标系的基础。

海拔

有人会说,海拔呢?有海拔不就是三维了吗?

还记得坐标系是怎么定义的吗?三个轴朝向+单位长度+坐标原点,海拔的定义是地面高度,其原点与每个点有关...

但是,硬要说原点那一点的地表垂直向上为z轴也不是不可以,但是这默认就做了投影变换,坐标系已经改变了(投影变换后坐标轴定义是要变的)