前言
在Cesium三维地球开发中,常常会涉及到坐标系的概念。Cesium中的坐标系包含两类:经纬度和笛卡尔坐标系,正确理解这两类坐标系的几何含义和转换,对于开发至关重要,本文将介绍这两种坐标系的几何定义,转换。
经纬度坐标系
要严谨的描述经纬度坐标系,需要理解一些地球椭球上的一些特殊点、线、面:
- 椭球中心,即地球椭球的长短轴的交点;
- 旋转椭球的短轴;
- 子午面:过短轴的面称为子午面,子午面与椭球面的交线称为子午线,亦即经线,其中一个特殊的就是过格林尼治天文台的子午线,将其称为本初子午线,即0°经线;
- 赤道面:过椭球中心,与子午面正交的面;其与椭球面的交线称为赤道;
知道了椭球面上这些特殊点线面后,我们来定义球面大地坐标系,以地面点P为例。
大地经度:过P点做与椭球面垂直的线,称为法线,过这条法线有一个子午面,过P点的子午面和本初子午面的二面角就是该点的大地经度,用L表示。
大地纬度:法线与赤道的夹角称为大地纬度,用B表示;
大地高:地面点沿着法线到参考椭球面的距离称为大地高;
但是与我们常用的经纬度表示方法不同,在Cesium中,角度采用弧度表示。
角度转弧度:
radians = degrees * Math.PI / 180.0
new Cesium.Math.toRadians(角度)
弧度转角度:
degrees = radians * 180.0 / Math.PI
new Cesium.Math.toDegrees(弧度)
笛卡尔坐标系
笛卡尔坐标系的坐标原点与坐标轴的定义:
- 坐标原点O:椭球中心;
- Z轴:自转轴的正方向,即椭球中心与北极点的连线;
- X轴:本初子午面与赤道的交线;
- Y轴:90°经线形成的子午面,与赤道面的交线。
在这个坐标系中点P的坐标(x,y,z)的几何含义是OP向量在 X、Y、Z 轴上的投影,即其在X、Y、Z上的分量。
坐标系转换
经纬度转笛卡尔坐标
Cesium.Cartesian3.fromDegrees(longitude,latitude,height,ellipsoid,result)- longitude: 经度
- latitude: 纬度
- height: 高程
- ellipsoid: 椭球对象,默认为WGS84椭球
- result: 结果对象
笛卡尔坐标转经纬度
Cesium.Cartographic.fromCartesian(cartesian,ellipsoid,result)- cartesian: 笛卡尔坐标
- ellipsoid: 椭球对象,默认为WGS84椭球
- result: 结果对象
这里转换的经纬度结果是弧度,可以转换成角度。