dポイントプレゼントキャンペーン実施中!

緯度経度から2点間の距離を求めることを考えております。
QNo.249931 http://oshiete1.goo.ne.jp/qa249931.html
を参考に、色々、やっておりますが、どうも、うまく行きません。
サジェスチョンをお願いいたします。
今欲しいケースは、極めて近距離です。概略2Km程度ですので、
下記を使っております。

>ある地点の緯度・経度をδ1・λ1,もう一方の地点はδ2・λ2とします。
>2地点の緯度の平均(ふつうに足して2で割る)をδ0とすると,
>d=√[{(λ1-λ2)×(cosδ0)}^2 + (δ1-δ2)^2]
>角度は度でもラジアンでも構いません(式中の値がすべて同じ単位であれば)。
>あとは,距離(km)=6370×dで2地点間の距離が出ます。(6370kmは地球の平均半径です)

具体例
A地点35度10分08秒、136度53分08秒 -->126608秒、492788秒
B地点35度09分46秒、136度55分01秒 -->126586秒、492901秒

δ1= 35*60*60+10*60+08=126608
λ1=136*60*60+53*60+08=492788
δ2= 35*60*60+09*60+46=126586
λ2=136*60*60+55*60+01=492901
δ0=(126608+126586)/2=126597
d=Sqrt(((492788-492901)*cos(126597))^2+(126608-126586)^2)=111.9221523
従って、A-B、2地点の距離(km)は、
距離(km)=6370*111.9221523=712944.1101Km

一方で、荒っぽく、1秒を緯度、経度ともに、30.9mとすると、
(地球1周≒4万km、全周=360度→360*60*60=1296000秒
(∴ 40000km*1000m/1296000秒≒30.9m)

δ1-δ2=(126608-126586)=22
λ1-λ2=(492788-492901)=-113
距離(m)=sqrt(22~2+113^2)=3557.25975

この2地点間の距離は、大体3Kmと分かっておりますから、
荒っぽい計算の方が合っています。

小生の計算は、合っているとは思いますが、サジェスチョンをお願いいたします。

A 回答 (1件)

>距離(km)=6370*111.9221523=712944.1101Km



がよくわかりません。
2点間の距離は111.9秒と出ていますから、
(111.922/3600)*6370*2*pi/360=3.456(km)
(pi=円周率)

と出ます。
ここで、(111.922/3600)は、秒を度に変換するため、(6370*2*pi)は地球の円周(緯度360度分の長さ)、360で割るのは、それを緯度1度分の長さを出すためです。

普通は度分秒で出された緯度は度に直すものですが。

蛇足かもしれませんが、より精密に計算したい場合は、地球の扁平率(赤道まわりの円周と、北極・南極を通る円周で長さがどれだけ違うかを示したもの)も考えましょう。

この回答への補足

ご指摘の通り、秒を使ったのは、小生の間違いです。申し訳ない。
正しくは、下記の通りです。

δ1= (35*60*60+10*60+08)/3600=126608/3600=35.16889
λ1=(136*60*60+53*60+08)/3600=492788/3600=136.8856
δ2= (35*60*60+09*60+46)/3600=126586/3600=35.16278
λ2=(136*60*60+55*60+01)/3600=492901/3600=136.9169
δ0=(126608+126586)/2/3600=126597/3600=35.16583
d=Sqrt(((136.8856-136.9169)*cos(35.16583))^2+(35.16889-35.16278)^2)=0.026402
------上記は、QNo.249931より引用しています----------

従って、A-B、2地点の距離(km)は、
距離(km)=6370*0.026402=168.1805Km

ここで、 dの次元は、角度です。
従って、2点間の距離は、地球の半径6370Kk*sin(角度)
しかし、角度が小さいが故に、半径*角度になっているのだと理解しています。

この2点間の距離は、”距離と方位角の計算”のサイトで調べると、
http://vldb.gsi.go.jp/sokuchi/surveycalc/bl2stf. …
2,938.914(m)と出ます。

最初に参考にさせていただいた、QNo.249931での式が不完全なのではないかと、疑い始めました。

補足日時:2007/05/13 17:43
    • good
    • 0
この回答へのお礼

本件、次のように結論づけました。
式中の変数の単位は、ラジアンでしかだめ。

d=Sqrt(((longA-longB)*cos(lat0))^2+(latA-latB)^2)

A地点35度10分08秒、136度53分08秒 -->126608秒、492788秒0.613794802, 2.389033182
B地点35度09分46秒、136度55分01秒 -->126586秒、492901秒0.613688147, 2.389581005

latA= (35*60*60+10*60+08)/3600=126608/3600=35.16888889-->*3.1415/180=0.613794802
longA=(136*60*60+53*60+08)=492788/3600=136.8855556-->*3.1415/180=2.389033182
latB= (35*60*60+09*60+46)=126586/3600=35.16277778-->*3.1415/180=0.613688147
longB=(136*60*60+55*60+01)/3600=492901/3600=136.9169444-->*3.1415/180=2.389581005
lat0=(126608+126586)/2/3600=126597/3600=35.16583333-->*3.1415/180=0.613741475

d=Sqrt(((2.389033182-2.389581005)*cos(0.613741475))^2+(0.613794802-0.613688147)^2)=0.00046037

従って、A-B、2地点の距離(km)は、
距離(km)=6370*0.00046037=2.9325Km
---------------------

お礼日時:2007/05/17 13:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!