1. 程式人生 > >給定地球上兩點的經緯度,求兩點之間沿地球表面最短的弧線距離

給定地球上兩點的經緯度,求兩點之間沿地球表面最短的弧線距離

style gin tro 問題 整理 標準 一個 avi src

問題:

  設地球上的兩點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兩點之間沿地球表面最短的弧線距離為:

技術分享圖片

給定地球上兩點的經緯度,求兩點之間沿地球表面最短的弧線距離