首页 > 技术文章 > 给定地球上两点的经纬度,求两点之间沿地球表面最短的弧线距离

xinmomoyan 2019-05-14 20:51 原文

问题: 

  设地球上的两点A和B的的经纬度分别为A:a1, a2 (a1,a2的单位为度,a1表示经度,a2表示纬度,B亦然) 和B:b1,b2。如下图所示。现在想求出A和B两点之间沿着地球表面最短的弧线距离(图中红线标出部分)。

思考:

  假设地球是个标准的球体(实际上地球是一个两极稍扁,赤道略鼓的椭球),很显然,只要知道A、B两点与地球球心形成的夹角θ(单位为弧度),设地球半径为R(R通常取为6371Km),则A、B两点之间沿地球表面最短的弧线距离为R*θ,所以问题变为求θ。

求解过程:

  设A点所在经线与赤道交于点C, B点所在经线与赤道交于点D。

  延长射线OA,与“过点C且垂直于赤道所在平面的直线”交于点E;

  延长射线OB,与“过点D且垂直于赤道所在平面的直线”交于点F。

  过F作垂直于直线CE的直线,垂足为H。

 

这里令

 

注:a1表示经度,a2表示纬度,b亦然。

有三角函数的知识知:

 对于三角形COD来说,由“余弦定理”有

 

带入即

把上面求得的DF和CE带入,得

所以在直角三角形EHF中

 

在三角形OEF中,利用三角形“余弦定理”有

 

带入即

整理得

 

所以

 

从而A和B两点之间沿地球表面最短的弧线距离为:

 

 

推荐阅读