已知两点经纬度,求两点间距离(弧形,地球视为规则球体)
正好最近整论文遇到这个问题,发现很多博客没有写明原理,或者有错误的地方,整理于此处,作笔记保存。
注:计算中所有角均为弧度
如图:
其中:E为点B所在纬线圈的圆心C为与A点纬度相同,与B点经度相同的点;H为A、C所处纬线圈的圆心;连接BC并延长与OH相交与F;
A(Wa,Ja),B(Wb,Jb),其中,W为纬度,J为经度。
欲求A,B间距离(弧形),故要求出在扇形OAB中的∠AOB的弧度,可用 L = 2πR*(∠AOB/2π)=R*∠AOB
即求出∠AOB的度数即可求出距离。
欲求∠AOB的度数,可以在三角形AOB中使用余弦定理或正弦定理计算得:
三角形OAB为等腰三角形,sin(∠AOB/2) = (AB/2)/R ==> ∠AOB = 2*arcsin(AB / 2R),此处分母为 2R,使用正弦定理
问题转化为求 AB的直线长度:
在三角形ABC中,
AC与BC可以通过经纬度求得:
以经度为例,在以H为圆心的纬度圈上,∠CHA = | Ja - Jb | ,三角形ACH为等腰三角形,可用余弦定理求得AC,求BC同理。
在三角形ABF中有:
BE与CH可用已知条件求得
参考博客:
https://blog.csdn.net/weixin_44731100/article/details/89386978