全球地理坐标系、大地坐标系(WGS-84、LLA)
可以说是最为广泛应用的一个地球坐标系,它给出一点的大地纬度、大地经度和大地高程而更加直观地告诉我们该点在地球中的位置,故又被称作纬经高坐标系。WGS-84坐标系的X轴指向BIH(国际时间服务机构)1984.0定义的零子午面(Greenwich)和协议地球极(CTP)赤道的交点。Z轴指向CTP方向。Y轴与X、Z轴构成右手坐标系。
一句话解释就是:把前面提到的ECEF坐标系用在GPS中,就是WGS-84坐标系。
其中:
(1):大地纬度是过用户点P的基准椭球面法线与赤道面的夹角。纬度值在-90°到+90°之间。北半球为正,南半球为负。
(2):大地经度是过用户点P的子午面与本初子午线之间的夹角。经度值在-180°到+180°之间。
(3):大地高度是过用户点P到基准椭球面的法线距离,基准椭球面以内为负,以外为正。
地心地固坐标系(ECEF)
地心地固坐标系(Earth-Centered, Earth-Fixed,简称ECEF)简称地心坐标系,是一种以地心为原点的地固坐标系(也称地球坐标系),是一种笛卡尔坐标系。原点 O (0,0,0)为地球质心,z 轴与地轴平行指向北极点,x 轴指向本初子午线与赤道的交点,y 轴垂直于xOz平面(即东经90度与赤道的交点)构成右手坐标系。
东北天坐标系(ENU)
也叫站心坐标系,以用户所在位置P为坐标原点。
坐标系定义为: X轴:指向东边 Y轴:指向北边 Z轴:指向天顶
ENU局部坐标系采用三维直角坐标系来描述地球表面,实际应用较为困难,因此一般使用简化后的二维投影坐标系来描述。在众多二维投影坐标系中,统一横轴墨卡托(The Universal Transverse Mercator ,UTM)坐标系是一种应用较为广泛的一种。UTM 坐标系统使用基于网格的方法表示坐标,它将地球分为 60 个经度区,每个区包含6度的经度范围,每个区内的坐标均基于横轴墨卡托投影。
三种坐标之间的转换公式
WGS84 -> ECEF
①需要用到的参数:
地球长半轴半径:a;地球短半轴半径:b;椭球的第一偏心率:e;卯酉圈半径:N。
②输入:
经度:Lon;纬度:Lat;高度:Hei。
③计算:
e = sqrt(a*a-b*b)/a;
N = a/sqrt(1-e*e*sin(Lat)*sin(Lat));
X = (N+Hei)*cos(Lat)*cos(Lon);
Y = (N+Hei)*cos(Lat)*sin(Lon);
Z = (N*(1-e*e)+Hei)*sin(Lat);
④输出:X,Y,Z
ECEF -> ENU
①输入:
经度:Lon;纬度:Lat;第一组接受到的ECEF数据:x0,y0,z0;后面接收到的ECEF数据:x,y,z。
②计算:
dx=x-x0; dy=y-y0; dz=z-z0;
e = -sin(Lon)*dx+cos(lon)*dy;
n = -sin(Lat)*cos(Lon)*dx-sin(Lat)*sin(Lon)*dy+cos(Lat)*dz;
u = cos(Lon)*cos(Lat)*dx+sin(Lon)*cos(Lat)*dy+sin(Lat)dz;
③输出:
ENU下的坐标:e,n,u
其中经度Lon、纬度Lat是角度量,在代码中要先转成弧度制再计算。
参考文献: https://blog.youkuaiyun.com/YYshuangshuang/article/details/85099025