利用经纬度求解两点球面距离
Haversine formula
h(θ)=sin2(2θ)=21−cos(θ)
则h(θ)=h(Rd)=h(Δβ)+cos(β1)cos(β2)h(Δα)
- R表示球面半径,d表示球面距离,θ表示两点与圆心夹角弧度
- αi分别表示两点经度,βi表示两点维度,Δ表示差值
- 公式全称应该为half−versine,即versine:1−cos(θ)的一半
- 计算时可进一步化解:cos(θ)=sin(β1)sin(β2)+cos(β1)cos(β2)cos(Δα)

这里求AB⌢,显然求得∣AB∣即可
以OEF为例,∠OEF=Δα,∣EF∣=2sin(2Δα)R,同理利用维度∣AC∣=2sin(2Δβ)R
而对于∣BC∣,∣AD∣作AG⊥OE,BH⊥OE可得:∣AD∣=2sin(2Δα)(∣OE∣cos(∠AOG))=2sin(2Δα)Rcos(β1)
而四边形ACBD为等腰梯形形
CH=2BC−AD,AB2=BH2+AH2=(BC−CH)2+AC2−CH2=AC2+BC∗AD
∣AB∣2=4sin2(2Δβ)R2+4sin2(2Δα)cos(β1)cos(β2)R2
而要求解的θ=∠AOB,∣AB∣2=4sin2(2θ)R2
得到目标公式h(θ)=h(Δβ)+cos(β1)cos(β2)h(Δα),AB⌢=d=Rθ
进一步化解1−cos(θ)=1−cos(Δβ)+cos(β1)cos(β2)(1−cos(Δα))
cos(Δβ)=cos(β1)cos(β2)+sin(β1)sin(β2)
可得cos(θ)=sin(β1)sin(β2)+cos(β1)cos(β2)cos(Δα)