地球上两点距离与航向

网上的文章,计算过程写的太过反人类,写个简单的。
就是地球表面的弧形,在变成等腰梯形,用等腰梯形近似计算两点长度、角度就OK了


贴一段觉得网上写的还算不错的部分
Ea 表示赤道半径,
Eb表示极半径,
Ec的作用就是修正因为纬度不断变化的球半径长度。
地球是一个近似球体,Ea与Eb稍微有点差距。如果在GLAT=0,即在赤道上的时候,Ec=Eb+(Ea-Eb)(90-0)/90=Ea,那Ec就刚好是赤道半径Ea;如果在极点GLAT=90,Ec=Eb+(Ea-Eb)(90-90)/90=Eb,那Ec 就刚好是极半径Eb。
Ed是GLAT所在纬度的纬度圈的半径
Ed = ec * Math.Cos(GLAT * Math.PI / 180)


Ed就是一个切面的半径。

double dx=(B.m_RadLo-A.m_RadLo)*A.Ed;
double dy=(B.m_RadLa-A.m_RadLa)*A.Ec;//我感觉这是一个近似计算
这是一种算法

还有用算法是用梯形上边、下边、高来确定梯形的方法,计算起来会准确些。

地球上两点距离与航向