已知经纬度求距离
如下图所示,已知点A的经度θA和纬度φA以及点B的经纬度θB和φB,求两点的距离。图中点C为地球北极,其与点A和点B构成了一个球面三角形△ABC,三角形三边长分别为a、b、c。点F、D、E分别为本初子午线、过点A的经线以及过点B的经线与赤道面的交点。
首先将地球视为一单位圆球,则根据球面三角形余弦定理,有cosc=cosacosb+sinasinbcosC
对于单位圆球来说,球面三角形边的弧长即为相应球心角的弧度,即b=∠AOC=π/2−φA a=∠COB=π/2−φB
∠C是平面COD和平面COE的夹角∠C=∠DOE=θB−θA
代入余弦定理公式,得cosc=cos(π/2−φA)cos(π/2−φB)+sin(π/2−φA)sin(π/2−φB)cos(θB−θA)=sin(φA)sin(φB)+cos(φA)cos(φB)cos(θB−θA)
因此c=arccos(sin(φA)sin(φB)+cos(φA)cos(φB)cos(θB−θA))
再由弧长计算公式弧长=弧度×半径
则可计算两点间得距离S=c×Re=Re×arccos(sin(φA)sin(φB)+cos(φA)cos(φB)cos(θB−θA))
其中Re为地球半径
