2012-04-12

2地点の緯度と経度からおおよその距離を計算する

球面三角法(PDF) の最後の「3-2. 地上の2地点間の距離」がわかりやすかったので少し引用します。

image

図の太線で囲まれた球面三角形に余弦法則を適用すると

であり、

によって x を計算できる。この場合は0≦ x ≦ 180°なので、cos-1によって得た結果にあいまいさは無い。2地点間の距離 L は、

によって計算できる。ただし x はラジアンの値にしておくことが必要である。

プログラム(Java)で書くと下のような感じです。度はラジアンにします(* Math.PI / 180で変換していますがJavaならMath.toRadians()でもいいです。PHPならdeg2rad())。

 

カシオの計算サイトに同様の計算式で距離を計算するフォームがあって便利でした。