2地点の緯度・経度から距離を計算する
地理的な距離と系統的距離の関係を考える際に2地点間の距離を求めたいことがありますが、案外面倒なのでスクリプトにしてみました。入力は
地点名 緯度 経度 地点名 緯度 経度 地点名 緯度 経度 以下略
なファイルを用意して下さい。全地点間の距離を算出してCSVファイルに出力します。緯度・経度は度のみ・度,分・度,分,秒(区切り文字はカンマです。スペースを含んではいけません)のいずれかの形式で記述して下さい。いずれも小数点以下があってもなくても構いません。1ファイル内の記述形式は統一されている必要はありません。計算方法はKubota氏のrange.cを参考にさせていただきました。楕円体を考慮しているようです。一応、日本国内限定なら下記ページの結果との誤差は±5km以内には収まると思いますが、単純な計算なので精度は保証できません。それなりの精度が欲しい場合は国土地理院測地部サイト内の測量計算のページを使いましょう。
決まり文句
例によって例のごとく内容は無保証なので要注意。このページの情報に従って何らかの損害が出ても補償できませんのであしからず。要するに自己の責任において実行してちょうだいねということです。
必要なもの
スクリプトを実行するために必要。WindowsではActivePerlでOK。
スクリプト
からダウンロードして下さい。
使用方法
入力ファイルが用意できたら
perl distcalc.pl < input_file_name > output_file_name
で指定したファイル名のCSVファイルが出力されます。同じ組み合わせを2回も計算してしまいますが、最近のPCなら十分な速度で計算できるでしょう。
履歴
- 2006/10/28 計算方法をKubota氏のrange.cを参考にして変更
- 2006/10/27 初版リリース(計算ははてなの回答を参考に実装)
最終更新時間:2006年11月22日 23時02分42秒