2地点の距離の導出


地球上の2地点の距離の求め方

地球上の2地点の距離の求め方は、いくつかありますが、以下の2つの方法を解説します。

  • 球面三角法の余弦定理からの導出
  • ベクトル空間からの導出

それぞれの公式において、緯度・経度を使って距離を導出することができます。

球面三角法の余弦定理からの導出

球面三角形と球面三角法の余弦定理について

球面三角形とは、以下の図のように、球面上の3点を結んだ三角形の事です。


図: 単位球面上の球面三角形

上図の球面三角形の辺と角度には以下の関係式が成り立ちます。
これを球面三角法の余弦定理と呼びます。

球面三角法の余弦定理(式1)
cos(c) = cos(a)cos(b) + sin(a)sin(b)cos(C)

上式から単位球面上2点間の距離cは、以下となります。

2点間の距離c (式2)
c = acos({cos(a)cos(b) + sin(a)sin(b)cos(C)})

単位球を地球にマッピング

また以下の図2のように、
点uを北極点、点v,wをそれぞれ距離を求める2地点として、単位球を地球にマッピングします。

図1 図2
単位球上の球面三角形 点uを北極点として、左図を地球にマッピングした図。

点vの緯度・経度 = (φ1, λ1)
点wの緯度・経度 = (φ2, λ2)

そうすることによって、図1の単位球面上の球面三角形の辺と角度は、緯度・経度を使って以下のように表せます。

図1の関係式を緯度・経度で表した場合
a = π/2 - φ1 (φ1: 点vの緯度[rad])
b = π/2 - φ2 (φ2: 点wの緯度[rad])
C = λ2 - λ1 = Δλ (λ1: 点vの経度[rad], λ2: 点wの経度[rad])

* 単位球では、球の中心oとのなす角度[rad]はそのまま、円弧の長さとなる事に注意
→ ex 辺bは、∠uowのなす角度[rad]と同一

従って式2から、単位球面における2地点の距離(c)は、
以下のように緯度・経度を使って表す事が出来ます。

経度・緯度からの単位球面上の2地点の距離c(式3)
c = acos(cos(a)cos(b) + sin(a)sin(b)cos(C))
  = acos(cos(π/2-φ1)cos(π/2-φ2) + sin(π/2-φ1)sin(π/2-φ2)cos(Δλ))
  = acos(sin(φ1)sin(φ2) + cos(φ1)cos(φ2)cos(Δλ))

求めた距離cは、直径1の単位球上の2点間の距離なので、
地球上における2地点の距離(d)は、地球の直径をRとすると以下となります。

地球上における2点間の距離
d = Rc

ベクトル空間から地球上の2点間の距離を求める

緯度・経度を直接ベクトル空間にマッピングするのは、しんどいため、
一旦緯度・経度を極座標で表し、極座標からベクトル空間(直交座標)に変換します。

ベクトル空間による距離の導出

上図において、点Pと点Qをそれぞれ距離を求めたい2地点とすると、
その間のなす角度cを求めることで、弧PQの長さが導出できます。
この角度cは、ベクトルの公式(内積・外積)どちらからでも求めることが出来ます。
(またこの角度cは、式1、式2に出てくるcと同一であるため、球面三角形の余弦定理の証明にもなります。)

経度・緯度と極座標の関係

上図の極座標において、緯度・経度を以下のようにマッピングします。

経度・緯度と極座標の関係(定義1)
φ = 経度
θ = π/2 - 緯度
r = 地球の半径

極座標からベクトル空間へ

wikipediaの極座標から拝借。

従ってある地球上の2地点の経度・緯度がそれぞれP(φ1, λ1)、Q(φ2, λ2)とすると、定義1からそれぞれベクトル空間上で緯度・経度を用いて表すと、以下となります。

経度・緯度をベクトル空間上に変換
点P = ( sin (π/2-φ1)cos(λ1), sin(π/2-φ1)sin(λ1), cos(π/2-φ1) )
    = ( cos(φ1)cos(λ1), cos(φ1)sin(λ1), sin(φ1) )
点Q = ( cos(φ2)cos(λ2), cos(φ2)sin(λ2), sin(φ2) )

内積から2頂点のなす角度cを導出

p・q
p・q = cos(φ1)cos(φ2)cos(λ1)cos(λ2) + cos(φ2)cos(φ2)sin(λ2)sin(λ2) + sin(φ1)sin(φ2)
     = cos(φ1)cos(φ2){cos(λ1)cos(λ2) + sin(λ1)sin(λ2)} + sin(φ1)sin(φ2)
     = cos(φ1)cos(φ2)cos(Δλ) + sin(φ1)sin(φ2)

それぞれp,qが単位ベクトルとすると、
ベクトルp,qと間のなす角度cとの関係 p・q = cos(c) であるから、角度cは以下となります。

2つのp,qベクトルのなす角度c(式4)
c = acos(p・q)
  = acos(cos(φ1)cos(φ2)cos(Δλ) + sin(φ1)sin(φ2))

従って点Pと点Qの間のなす角度cが求まったので、
地球の直径をRとした時の2地点の距離(d)は以下となります。

地球上の2地点の距離
d = Rc

図らずしも式4は、球面三角法の余弦定理から求めた式3のcと同一になっていることがわかります。
これは単位球面上の球面三角形の辺と角度は、以下の関係があるためです。

上図に置いて中心点をOとすると、OBとOCのなす角度∠BOC ([rad])を上記のベクトルを使って導出しました。
一方球面三角法の余弦定理で求めた値は、弧BCになります。
長さ1の単位球面上においては、角度をradで表現した場合、円弧の長さと等しくなるため、球面三角法の余弦定理の証明に使うことが出来ます。

参考

Calculate distance, bearing and more between Latitude/Longitude points

大円距離

球面三角法

極座標系

画像参照元

wikipedia File:Spherical with grid.svg

wikipedia File:Arctic Ocean - en.png

wikipedia File:Law-of-haversines.svg

wikipedia File:Illustration of great-circle distance.svg

wikipedia File:Spherical trigonometry basic triangle.svg