- ベストアンサー
緯度・経度からの距離計算
ある地点の緯度・経度ともう一方のある地点の緯度・経度が わかっているとして、その各緯度・経度より2地点間の距離を 計算できないのでしょうか? 計算方法を知りたいのです。 なんか公式みたいなものはないのでしょうか? なんかヒントになるサイトのURLでもかまいません。 お願いします。教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
簡略バージョン(地球を完全な球とみなす)と,精密バージョン(地球を回転楕円体とみなす)があります。 まずは簡略バージョン。 ある地点の緯度・経度をδ1・λ1,もう一方の地点はδ2・λ2とします。 経度は,東経を正,西経を負。緯度は,北緯を正,南緯を負とします。(実は逆でもよい。要は,東と西,北と南で,それぞれ符号が異なっていればよいのです) また,2地点間の角度(地球の中心から見た時の)をdとします。 すると,球面三角法の公式より, cos d = (sinδ1)×(sinδ2) + (cosδ1)×(cosδ2)×cos(λ1-λ2) となります。ここに緯度・経度をあてはめて,cos dが求まります。 cos dから角度dが逆三角関数cos^-1で求まります。電卓のcos^-1キーを使うと便利です。ただし,dはラジアンで求めてください。(緯度・経度は度単位でかまいません) あとは,距離(km)=6370×dで2地点間の距離が出ます。(6370kmは地球の平均半径です) やや精密バージョンは,No.1の参考URLに出ています。楕円体であるため,地心緯度と地理緯度にわずかながら差が生じているので,それを補正します。 以上の方法の問題点は,2地点間が近い時に誤差が大きくなることです。 たとえば,2地点間の距離が1kmのとき,d=0.9999999877となりますが,末尾を四捨五入してd=0.999999988とすると,距離=0.54kmとなってしまいます。 これはcosを使っているからです(cosは角度が小さいとほとんど変化しませんね)。 そのような場合は,次の近似式が使えます。 2地点の緯度の平均(ふつうに足して2で割る)をδ0とすると, d=√[{(λ1-λ2)×(cosδ0)}^2 + (δ1-δ2)^2] 角度は度でもラジアンでも構いません(式中の値がすべて同じ単位であれば)。 もっと精密な方法は,国土地理院のページに載っています。(参考URL) コンピュータならよいのですが,手計算で試みるのはかなり大変そうです。
その他の回答 (2)
- puni2
- ベストアンサー率57% (1002/1731)
補足です。 距離が近い時の救済策として,cosがだめならsinを使おう!という方法もあります。 以下,2地点の緯度の差をΔδ,経度の差をΔλと書きます。 回答No.2で書いた公式を少し変形すると, sin^2 (d/2) = sin^2 (Δδ/2) + (cosδ1)×(cosδ2)×sin^2 (Δλ/2) これを用いてsin^2(d/2)を求め,ルートをとって,arcsinをとって(ラジアンで),2倍すれば,dが求まります。 回答No.2で書いた近似式は,2地点を結ぶ線を長方形の対角線とみなしているわけです。 いいかえれば,λ1-λ2に対応する距離は,どちらの地点の緯度でも同じとみなしています。 したがって,2地点の緯度差が大きくなると,誤差も増えます。 しかし,ここで書いた方法は,近似式ではなく,もとの式と同値です(証明してみてください)ので,2地点が南北に離れていても使えます。
お礼
ありがとうございます。
- poor_Quark
- ベストアンサー率56% (1020/1799)
「緯度 経度 距離計算」で検索をかけたら以下のサイトが見つかりましたがどうでしょうか。 http://www2.neweb.ne.jp/wd/nobuaki/New_Homepage/okinawa703.htm
お礼
どうもありがとうございます。参考にさせていただきます。
お礼
すごい・・・・。 なんかめちゃ専門知識ですね。 ありがとうございます。