常量
含义量纲对象类型地球半长轴米a=6378137偏率无f=1/298.257222101第一偏心率平方无e2=2f−f2=0.00669438002290 \begin{array} {|l|l|l|} \hline 含义 & 量纲 & 对象类型 \\ \hline 地球半长轴 & 米 & a = 6378137 \\ \hline 偏率 & 无 & f = 1/298.257222101 \\ \hline 第一偏心率平方 & 无 & e^2 = 2f - f^2 = 0.00669438002290 \\ \hline \end{array} 含义地球半长轴偏率第一偏心率平方量纲米无无对象类型a=6378137f=1/298.257222101e2=2f−f2=0.00669438002290
地心纬度与大地纬度
tan(ϕ1)=(1−e2)tan(ϕ0) tan(\phi_1) = (1-e^2) tan(\phi_0) tan(ϕ1)=(1−e2)tan(ϕ0)
其中ϕ0\phi_0ϕ0为地心纬度,ϕ1\phi_1ϕ1为大地纬度。
地心距计算
R0=acos2ϕ+(1−e2)2sin2ϕ1−e2sin2ϕ R_0 = a \sqrt{ \frac{cos^2{\phi} + ( 1 - e^2 )^2 sin^2{\phi} } { 1 - e^2 sin^2{ \phi } } } R0=a1−e2sin2ϕcos2ϕ+(1−e2)2sin2ϕ
其中ϕ\phiϕ为(地心)纬度
大地距
对应地心距离,地理学上好像没有这种概念,但是确实会用到这个距离,与地心距的关系如下:
R0sinϕ0=R1sinϕ1 R_0 sin\phi_0 = R_1 sin\phi_1 R0sinϕ0=R1sinϕ1
其中R0R_0R0为地心距,ϕ0\phi_0ϕ0为地心纬度,ϕ1\phi_1ϕ1为大地纬度。
那么大地距R1R_1R1的计算公式为:
R1=a(1−e2)1−e2sin2ϕ1 R_1 = \frac{ a ( 1 - e^2 ) }{ \sqrt{ 1 - e^2 sin^2{ \phi1 } } } R1=1−e2sin2ϕ1a(1−e2)
在许多情况下可以近似地认为ϕ0=ϕ1\phi_0=\phi_1ϕ0=ϕ1。
某一经纬坐标处的ENU正方向
ECEF坐标系中某一点处的ENU单位向量有:
e⃗=(−sinθ,cosθ,0)Tn⃗=(−sinϕ×cosθ,−sinϕ×sinθ,cosϕ)Tu⃗=(cosϕ×cosθ,sinϕ×sinθ,sinϕ)T \begin{align} \vec{ e } &= ( -sin{\theta} , cos{\theta} , 0 )^T \\ \vec{ n } &= ( -sin{\phi} \times cos{\theta} , -sin{\phi} \times sin{\theta} , cos{\phi} )^T \\ \vec{ u } &= ( cos{\phi} \times cos{\theta} , sin{\phi} \times sin{\theta} , sin{\phi} )^T \\ \end{align} enu=(−sinθ,cosθ,0)T=(−sinϕ×cosθ,−sinϕ×sinθ,cosϕ)T=(cosϕ×cosθ,sinϕ×sinθ,sinϕ)T
其中θ\thetaθ为经度,ϕ\phiϕ为纬度。
ENU坐标转LLA
θ0\theta_0θ0、ϕ0\phi_0ϕ0处的ENU坐标系内有坐标点penu⃗=(x,y,z)T \vec{ p_{enu} } = ( x, y, z )^T penu=(x,y,z)T,要计算该点对应的LLA坐标,首先计算该位置上的地心距R0R_0R0和大地距R1R_1R1,然后计算经纬高偏移量:
ΔLongitude=arctanxR0cosϕ0ΔLatitude=arctanyR1 \begin{align} \Delta Longitude &= \arctan{ \frac{x}{R_0 cos{\phi_0}} } \\ \Delta Latitude &= \arctan{ \frac{y}{R_1} } \\ \end{align} ΔLongitudeΔLatitude=arctanR0cosϕ0x=arctanR1y
于是得到该点对应的经纬度:
θ1=θ0+ΔLongitudeϕ1=ϕ0+ΔLatitude \begin{align} \theta1 &= \theta_0 + \Delta Longitude \\ \phi1 &= \phi_0 + \Delta Latitude \\ \end{align} θ1ϕ1=θ0+ΔLongitude=ϕ0+ΔLatitude
同时计算地心纬度与大地纬度的差值:
ϕ0−ϕ0′=arctantanϕ01−e2 \phi_0 - \phi_0' = \arctan{ \frac{ tan \phi_0 }{ 1 - e^2 } } ϕ0−ϕ0′=arctan1−e2tanϕ0
计算θ1\theta_1θ1、ϕ1\phi_1ϕ1处的大地距R2R_2R2,最终计算对应的高程值:
Altitude=z+x2+y2×sin(ϕ0−ϕ0′)+R02+cos2(ϕ0−ϕ0′)−R2; Altitude = z + \sqrt{ x^2 + y^2 } \times sin(\phi_0 - \phi_0') + \sqrt{ R_0^2 + cos^2(\phi_0 - \phi_0') } - R_2; Altitude=z+x2+y2×sin(ϕ0−ϕ0′)+R02+cos2(ϕ0−ϕ0′)−R2;
即可得到转换后的LLA坐标(θ1,ϕ1,Altitude)T( \theta_1, \phi_1, Altitude )^T(θ1,ϕ1,Altitude)T。
2万+

被折叠的 条评论
为什么被折叠?



