设两点到球心的张角为a
则两点的球面距离为:
d=R*a
球面两点间的球面距离的计算
1.计算
假设点A的经度为东经a1度,纬度为北纬b1度;点B的经度为东经a2度,纬度为南纬b2度。
所以α = b1, β = b2, 设∠ACE的值为θ,那么θ = |a1 – a2|。
可以计算出
|OC| = R * sin(α) |OD| = R * sin(β)
|AC| = R * cos(α) |BD| = R * cos(β)
由于|CE|=|BD|,|CD|=|OD|+|OC|
由余弦定理可以知道
|AE|2=|AC|2+|CE|2–2*|AC|*|CE|*cos(θ)
|AE|2=R2*cos2(α)+R2*cos2(β)-2*R2*cos(α)cos(β)*cos(θ)
|BE| = |CD|
由|AB|2 = |AE|2 + |BE|2
|AB|2 =R2*cos2(α)+R2*cos2(β)-2*R2*cos(α)cos(β)*cos(θ)+R2*sin2(α)+R2*sin2(β)+2*R2*sin(α)sin(β)
|AB|2=2R2(1+sin(α) sin(β) - cos2 (α) cos2 (β) cos(θ))
在三角形AOB中,亦可用余弦定理得到
|OA|2 + |OB|2– 2 |OA| * |OB| * cos(AOB)
cos(AOB) = cos(α) * cos(β) * cos(θ) - sin(α) sin(β)
这样可以求出AOB的值(单位为弧度),最后球面距离为R * (AOB)。
完毕,呵呵。
注意到,
(1)当A、B同为东经或同为西经时,θ = |a1 – a2|,那么当 A、B不是同为东经或同为西经时,θ = |a1 + a2|,若θ 180度,θ = 360 -θ(假设单位是角度,而不是弧度)。
(2)当A、B同为南半球或同为北半球时,|CD| = | |OC| - |OD| |,当A、B在不同的南北半球时,才是|CD| = |OC| + |OD|。