■地球の測量(その77)
地球上の2点A,Bの球面距離を知りたい。
A(緯度A、経度A)
B(緯度B、経度B)
経度が等しければ、球面距離θは緯度A-緯度Bになるが、経度が異なる場合を考える。
===================================
公式は
{sin(θ/2)}^2={sin(緯度A-緯度B)/2)}^2+cos(緯度A)cos(緯度B){sin(経度A-経度B)/2)}^2
経度A=経度Bであれば、θ=緯度A-緯度B
緯度A=緯度B=0のときθ=経度A-経度Bとなって正しい答えを返してくる
これを書き換えると
(1-cosθ)/2={1-cos(緯度A-緯度B)}/2+cos(緯度A)cos(緯度B){1-cos(経度A-経度B)}/2
(1-cosθ)={1-cos(緯度A-緯度B)}+cos(緯度A)cos(緯度B){1-cos(経度A-経度B)}
(cosθ)={cos(緯度A-緯度B)}-cos(緯度A)cos(緯度B){1-cos(経度A-経度B)}
経度A=経度Bであれば、θ=緯度A-緯度B
緯度A=緯度B=0のときθ=経度A-経度Bとなって正しい答えを返してくる
(cosθ)={cos(緯度A-緯度B)}-cos(緯度A)cos(緯度B){1-cos(経度A-経度B)}
(cosθ)={cos(緯度A-緯度B)}-cos(緯度A)cos(緯度B)+cos(緯度A)cos(緯度B)cos(経度A-経度B)
(cosθ)=sin(緯度A)sin(緯度B)+cos(緯度A)cos(緯度B)cos(経度A-経度B)
===================================
A(cos経度Acos緯度A、sin経度Acos緯度A、sin緯度A)
B(cos経度Bcos緯度B、sin経度Bcos緯度B、sin緯度B)
この問題は内積を使えば簡単に求めることができる。
cosθ=cos経度Acos緯度Acos経度Bcos緯度B+sin経度Acos緯度Asin経度Bcos緯度B+sin緯度Asin緯度B
=cos緯度Acos緯度B(cos経度Acos経度B+sin経度Asin経度B)+sin緯度Asin緯度B
=sin(緯度A)sin(緯度B)+cos(緯度A)cos(緯度B)cos(経度A-経度B)
===================================
一方、外積を計算すると
(sin経度Acos緯度Asin緯度B-sin緯度Asin経度Bcos緯度B、-cos経度Acos緯度Asin緯度B+sin緯度Acos経度Bcos緯度B、cos経度Acos緯度Asin経度Bcos緯度B-sin経度Acos緯度Acos経度Bcos緯度B)
この大きさがsinθになる。しかし、計算はすこぶる面倒で、計算力が鈍っているとなかなか正解にたどり着けないのであった。
===================================