以前『緯度経度から距離と方位を求める方法』という記事を書きましたが、プログラマの方には具体的なソースがないとわかりにくいかもしれないので、JavaScriptのプログラムを書いてみました。中身は単純ですので他の言語にも容易に移植できると思います。ソースは下記からダウンロードできます。
JavaScriptのソース(右クリックで保存してください)
下のフォームに2地点の緯度と経度を入力して「計算」ボタンをクリックすると、距離と方位角を計算して表示します。
前に説明しましたように、これは簡易的な計算ですので、地球の丸みが無視できないような広い範囲には適用できません。たとえば札幌-鹿児島間とかは無理です。逆にGPSに記録されたログのポイント間など、数百メートル程度のごく狭い範囲に限れば、厳密な方法で求めたものとほとんど変わらない精度が得られます。
なお緯度経度を入力する際は度分秒単位ではなく、度単位つまり十進法に直してから入力する必要がありますのでご注意ください。
コメント
初めまして。
研究で使いたいのですが、この緯度経度から距離と角度を求める計算プログラムのコードを教えていただけませんか。
本文中にソースへのリンクが張ってありますので右クリックで保存して下さい。
ありがとうございます。使わせていただきます。
質問なのですが、2点間の距離と角度を算出する際に、2点の緯度を足して2で割り、cosに入れてdxにかけていますが、これはどういう意味があるのでしょうか?
↓この部分です
==============================================
lat_c = (lat1 + lat2) / 2; // 緯度の中心値
dx = R_EARTH * (lon2 – lon1) * cos(lat_c);
==============================================
より正確にするため、緯度は2点間の中心を取っただけのことです。
極めて微小な角度であればlat1またはlat2のいずれかを使用しても全く差し支えありません。
解説ありがとうございます。助かりました。