人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

緯度・経度からExcelで距離を計算したいのですが、わかりやすい方法を教えてください。わかっているのは出発点・到着点の緯度・経度です。式の名前とか出所も一緒に教えていただけるとありがたいです。お願いします。

●質問者: hamabe
●カテゴリ:学習・教育 科学・統計資料
✍キーワード:Excel 名前 計算
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● osarivan
●16ポイント

http://www.hatena.ne.jp/1105008401

人力検索はてな - (1)インプットに住所、アウトプットに径度、緯度を実現するサイト、またはプロクラム、ASPを紹介ください (2)二地点の径度、緯度情報から二点間の距離をメートル単位で算出..

既質問でありましたので紹介します。

こちらの5番の回答にあります。

http://www02.so-net.ne.jp/~fland/fla/make/0top.htm

地図ソフトの作り方

こちら参考にしてみてください。


2 ● T-pon
●16ポイント

http://www2.neweb.ne.jp/wd/nobuaki/New_Homepage/okinawa703.htm

??x?E?o?x????????v?Z

ここに式が載っているので参考にされてはいかがでしょう?このページに直接値を入れて計算できるみたいですが。


3 ● yamanity
●16ポイント

http://www.google.co.jp/

Google

URLはダミーです。

数学的な計算で求まります。

出発地点の経度、緯度をそれぞれθ、φとし、到着地点の緯度、経度をそれぞれθ’、φ’とします(ラジアン)。Rを地球の半径(6000km程度?)とするとき、以下のような計算をします。

a = R・cosφ・cosθ

b = R・cosφ・sinθ

c = R・sinφ


d = R・cosφ’・cosθ’

e = R・cosφ’・sinθ’

f = R・sinφ’


g = a・d + b・e + c・f

h = acos(g)


Dist = R・h


で、Distが求める距離です。

ちなみに、角度は全てラジアンに統一して計算してください。たとえば経度120度緯度30度の場合は、θ=π・120/180, φ=π・30/180という変換式で変換されます。

また、acosというのは、cosの逆関数です。


4 ● nitscape
●30ポイント

http://www.mapinfo.jp/useful/knowledge/JGD2000/chapter_6.html

地球は球面ですから遠い距離での計算は面倒ですが、平面として考えてしまえば簡単です(自分でGPSを持って歩くような用途では十分です)。


経度や緯度が同じなら、経度や緯度と距離の関係はURLから

経度7分30秒で10km

緯度5分で10km

になります。これは直角三角形の直角を挟んだ横と縦に相当しますから、ピタゴラスの三角から簡単に斜め方向の距離が求まりますよね。


たとえば出発点に対して

経度7分30秒=450秒

緯度5分=300秒

だけ移動した場合は、2点間の距離は√(10km^2+10km^2)=10×√2=14kmになります。


実際に計算するときは経緯度が●度●分●秒だと計算が面倒なので単位を秒に戻します。


(秒)=度*60*60+分*60+秒


です。

つまりA点の秒単位の経度x、緯度yをそれぞれAx、Ayとし、同じようにB点をBx、Byとすると


Ax = Ax/450*10

By = By/300*10

距離(km)=√((Ax-Bx)^2+(Ax-By)^2)


という感じの式で計算できると思います。

◎質問者からの返答

ありがとうございます。早速やってみます。


5 ● yamanity
●16ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

先ほど回答したものです。

申し訳ありませんが、訂正をさせてください。

h = acos(g)

ではなく、

h = acos(g/R^2)

でした。


計算の内容の概略を説明すると、

地球の中心を原点Oにとり、出発点Aの3次元的位置を(a,b,c)、到着点Bの3次元的位置を(d,e,f)とおいて、その2点の内積を求めます(ad+be+cf)。その内積があらわすのは、R^2・cos(∠AOB)の値です。これをR^2で割れば、cos(∠AOB)が得られるので、∠AOB = acos(cos(∠AOB))というわけです。∠AOBがラジアンならば、弧ABの長さはR・∠AOBで与えられます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ