地球上の 2 つの地理座標間のユークリッド距離と、真北に対する方位角を計算する方法に関する式を取得したいと思います。たとえば、ニューヨークからニュー デリーまで、地球を通る直線を引きます。空間内の 2 点だからです。地球の表面を通る直線を引くとすると、たとえばニューヨークからニュー デリーまでの角度をどのように計算できますか。それを行うには、どのような数学的計算/式が必要ですか?
1 に答える
ラムライン ナビゲーション
rhumb ラインまたは loxodromes は、一定の真のコースのトラックです。子午線と赤道を除いて、それらは大円と同じではありません。どちらの極に近づくと、きつく巻かれたらせんになるため、あまり役に立ちません。以下の式は、いずれかの点が実際に極である場合に失敗します。
東西のラムラインは特別です。それらは緯度に沿っており、閉じた曲線を形成します。他の菱形線は、極から極へと延び、各極を無限に取り囲んでいます。それにもかかわらず、それらは pi/abs(cos(tc)) によって与えられる有限の長さを持っています (角度単位では、地球の半径を掛けて距離単位にします)。
2 点 (lat1,lon1)、(lat2,lon2) が真針路 tc の菱形線で結ばれている場合:
lon2-lon1=-tan(tc)*(log((1+sin(lat2))/cos(lat2))-
log((1+sin(lat1))/cos(lat1)))
=-tan(tc)*(log((1+tan(lat2/2))/(1-tan(lat2/2)))-
log((1+tan(lat1/2))/(1-tan(lat1/2))))
=-tan(tc)*(log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4)))
(対数は e を底とする「自然」対数です。)
ポイント間の真のコースは次のように与えられます。
tc= mod(atan2(lon1-lon2,log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4))),2*pi) ポイント間の距離 d は、 :
if (abs(lat2-lat1) < sqrt(TOL)){
q=cos(lat1)
} else {
q= (lat2-lat1)/log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4))
}
d=sqrt((lat2-lat1)^2+ q^2*(lon2-lon1)^2)
問題の菱形線が 180 E/W 子午線を横切る場合、この式は失敗します。これを可能性として許容すると、2 点を結ぶ最短の菱形線の真のコース tc と距離 d は、次の式で与えられます。
dlon_W=mod(lon2-lon1,2*pi)
dlon_E=mod(lon1-lon2,2*pi)
dphi=log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4))
if (abs(lat2-lat1) < sqrt(TOL)){
q=cos(lat1)
} else {
q= (lat2-lat1)/dphi
}
if (dlon_W < dlon_E){// Westerly rhumb line is the shortest
tc=mod(atan2(-dlon_W,dphi),2*pi)
d= sqrt(q^2*dlon_W^2 + (lat2-lat1)^2)
} else{
tc=mod(atan2(dlon_E,dphi),2*pi)
d= sqrt(q^2*dlon_E^2 + (lat2-lat1)^2)
}