1. 球体の表面上の点の位置を地球儀と同じように緯度と経度で表した場合、任意の二点間の表面上の距離(立体の中を通る線ではない)はどのように求めたらよいでしょうか。わかっているのは球体の半径Rと二点の緯度経度のみとします。


2. 上と同じ条件で、任意の二点を結ぶ線分の方角はどのように求めたらよいでしょうか。便宜上、南の極に近いほうの点から見たもう一点への方角とします。(言うまでもなく、緯度が同じなら真東が真西)

回答の条件
  • 1人2回まで
  • 登録:2009/08/19 15:27:11
  • 終了:2009/08/26 14:20:03

ベストアンサー

id:tdoi No.2

tdoi回答回数174ベストアンサー獲得回数752009/08/19 16:03:15

ポイント30pt

1.2地点を結ぶ弧の長さ

2点をA, Bとします。

この2点を球座標系を基に、2地点のユークリッド空間の座標を計算します。

参考:

http://ja.wikipedia.org/wiki/%E6%A5%B5%E5%BA%A7%E6%A8%99%E7%B3%B...

これより、原点(球座標の中心)をOとすると、ベクトルOA、および、ベクトルOBがもとまったといえます。

次に、この2つのベクトルのなす角θを求めます。

参考:

http://www5d.biglobe.ne.jp/~noocyte/Programming/Geometry/Rotatio...

弧の長さは半径と中心角に依存するので、θと球の半径が分かっていれば、すぐ求められます。

参考:

http://www004.upp.so-net.ne.jp/s_honma/circle/huygens.htm


2.2点の方向

方向とは何を意味しているかわかりませんが、1の中でユークリッド座標を求めているので、それで十分でしょうか?


何かの参考になれば。

id:spin6536

質問の後半が意図しているのは、A点から見てB点がどの方角にあるか、ということです。A点とB点が同じ経度にあり、B点のほうが北に近ければ、方角は真北(0度)ということになります。ユークリッド座標から、もしくは他の方法でどのように求めることができるでしょうか。

2009/08/19 16:28:13

その他の回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/08/19 15:51:32

ポイント30pt

1についてのみお答えします。


1.任意の二点間の表面上の距離

拙作「PHPで2地点間の直線距離を求める」に掲載しているサンプル・プログラムの123~139行目が計算式になります。

PHPスクリプトになっていますが、一般的な計算式しか使っていないので、読み取ることはできると思います。sqrt は平方根を求める関数です。


なお、緯度・経度が日本測地系(大部分の日本地図)で表したものか、世界測地系(Googleマップなど)で表したものかによって、曲率半径を求める式が異なります。

世界測地系を用いる場合は、129、133行目の式を使って下さい。

id:tdoi No.2

tdoi回答回数174ベストアンサー獲得回数752009/08/19 16:03:15ここでベストアンサー

ポイント30pt

1.2地点を結ぶ弧の長さ

2点をA, Bとします。

この2点を球座標系を基に、2地点のユークリッド空間の座標を計算します。

参考:

http://ja.wikipedia.org/wiki/%E6%A5%B5%E5%BA%A7%E6%A8%99%E7%B3%B...

これより、原点(球座標の中心)をOとすると、ベクトルOA、および、ベクトルOBがもとまったといえます。

次に、この2つのベクトルのなす角θを求めます。

参考:

http://www5d.biglobe.ne.jp/~noocyte/Programming/Geometry/Rotatio...

弧の長さは半径と中心角に依存するので、θと球の半径が分かっていれば、すぐ求められます。

参考:

http://www004.upp.so-net.ne.jp/s_honma/circle/huygens.htm


2.2点の方向

方向とは何を意味しているかわかりませんが、1の中でユークリッド座標を求めているので、それで十分でしょうか?


何かの参考になれば。

id:spin6536

質問の後半が意図しているのは、A点から見てB点がどの方角にあるか、ということです。A点とB点が同じ経度にあり、B点のほうが北に近ければ、方角は真北(0度)ということになります。ユークリッド座標から、もしくは他の方法でどのように求めることができるでしょうか。

2009/08/19 16:28:13
id:hiko3karasu No.3

hiko3karasu回答回数1058ベストアンサー獲得回数252009/08/19 16:20:36

ポイント20pt

2.

2点をA,BとしてAから見たBの方角は、

球体の中心からAへの直線と直交するAを含む面(Aから見た水平面)

AとBを含む平面

交差してできる直線

 

と考えればいいです。

id:spin6536

その方角(角度)はどのように求めたらよいでしょうか。

2009/08/19 16:23:34
  • id:tdoi
    回答の方角に関する補足です。

    ベクトルABがAから見たBの方向です。
    それをどう扱うかは、その目的によるでしょう。

    東西南北をどう定義するかになりますが、単純に緯度経度から求めた方が簡単かもしれません。
    つまり、Aが(北緯φ1、東経θ1)、Bが(北緯φ2、東経θ2)だとして、

    BはAから見て、

    θ2-θ1が正なら東側です。負であれば西側です。
    φ2-φ1が正なら北側です。負であれば南側です。

    こういうことでしょうか?
  • id:spin6536
    tdoiさま

    教えていただいたベクトルの計算を、実際にどのように進めたらよいかがわかりません。新たに質問をたてましたので、よろしければまたお願いいたします。

    http://q.hatena.ne.jp/1251265139

    また、一点から見たもう一点の方角は、数値で出したいと思っています。(たとえば、真北が0度、真南が180度、真西が270度など)

    こちらもお分かりでしたら教えていただけるでしょうか。
  • id:spin6536
    回答者の皆さま

    同様の質問をしましたので、よろしければご援助いただけるでしょうか。
    http://q.hatena.ne.jp/1252115070

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません