PicoWorkshop
GPS Project緯度経度 座標間の距離計算
GPSから得られた、位置座標1から位置座標2へ移動した場合の移動方向と移動距離を計算したい場合は以下の式を使います。 この計算は球面座標ではなく、狭い範囲を平面と見なし計算方法を簡便にしています。
JAVAへの移植も容易です。

距離を求めたい2点の座標をそれぞれ(λ1,φ1), (λ2,φ2)とする。またλは経度、φは緯度を表し、2点間の座標の変位を(Δλ, Δφ)とする。
緯度方向の変位Δyの計算
地球を完全な球体と仮定すれば、緯度の変化に対する円弧の長さとなる。
地球の半径として赤道半径A=6378137mを使用すると、Δy = AΔφとなる。
経度方向の変化Δxの計算
経度の変化に対する円弧の長さとなるが、地球は球体であるため緯度により円の半径が異なる。これは緯線に沿って地球を輪切りにした場合、その切り口の半径は緯度の余弦に比例することになる。したがってΔx = AΔλcosφ1で求められる。
上式ではφ1を使用しているが、φ2としても大きな差は無い。
ΔxとΔyが求まれば、2点間の距離Lは三平方の定理から、2乗の和の平方根で求める。
また方位角θはΔy/Δxの逆正接で求めることができる。このとき方位角の基準は真東の方角を0度とする。
注意
実際には地球は完全な球体ではないため、厳密に言うと誤差が生じる。しかし赤道半径と極半径の差は約21km程度であり、日本国内の緯度においてGPSの更新周期内の移動距離を計算する程度であれば、その誤差は無視できる。
精度が要求する場合は、地球の半径を回転楕円体モデルから計算すれば可能である。