• ベストアンサー

点と直線に関する質問

点A,Bを結ぶ直線ABと、直線AB上に無い点Cがあり、点Cから直線ABへ下ろした垂線Lと、直線ABとの交点Dを求める方法に関する質問です。 当方は、座標に経度・緯度を使っており、点A,B,Cの座標(位置情報)は既知です。まず、点A,Bを結ぶ直線を求め、次にその直線と垂直に交わる直線の傾きbを求め、傾きbで点Cを通る直線と直線ABとの交点を求め、点Dとしました。しかし、求めた点Dを地図ソフト(SIS)上にプロットしてみると、かなりのずれ(50~100m)が生じてしまいました。 距離は数十~数百メートル程度のオーダーです。 点の座標A(XA,YA),B(XB,YB),C(XC,YC),求める点D(XD,YD)とし、ABの傾きa=(YB-YA)/(XB-XA)、ABと垂直に交わる直線の傾きb=-(XB-XA)/(YB-YA)とおくと、点Dの座標は、XD=(a*XA-YB-b*XC+YC)/(a-b),YD=b*(XD-XC)+YCであるとして、求めました。 この問題はやはり球面座標で考えるべきなのでしょうか?当方、球面座標に関しては全くの無知でして、このような時はどのようにして求めればよろしいのでしょうか?式など示して頂ければありがたいですが、何か関連する情報やヒントでも結構ですので、アドバイスの方、どうぞ宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

球面三角法で解くのでしたら我田引水になりますが、 http://okweb.jp/kotaeru.php3?q=934745 が参考になればと思います。 ひょっとしたら連立方程式を組んで解けるのかもしれませんが私には考える時間が無いのでこれはパスです。 連立方程式が組めなくても逐次近似法で解は求まります。特にプログラミングしてコンピュータに計算させる場合はこれでなんら問題ありません。 もし対象地域が狭いのなら経緯度を平面直角座標系に直せば平面として計算して問題無いように思いますが、実際の数値を入れて試したわけでは無いのでここは自信なしです。 国土地理院のホームページの中の http://vldb.gsi.go.jp/sokuchi/surveycalc/algorithm/ に経緯度と平面直角座標系の相互の変換式へのリンクがあります。 まずは「7. 平面直角座標系」で同じ座標系に全ての地点が含まれているのかを確認する必要があります。 トップページのURLは http://www.gsi.go.jp/ です。

参考URL:
http://vldb.gsi.go.jp/sokuchi/surveycalc/algorithm/

その他の回答 (1)

回答No.1

> XD=(a*XA-YB-b*XC+YC)/(a-b) XD=(aXA-YA-bXC+YC)/(a-b) 完全に平面として扱っていいのであれば,求め方は今の方法でも問題ありません.ただし,XDの右辺の第2項目は上式のように-YBではなく-YAにですので確かめてください. これが単なる打ち間違いで実際に-YAとして計算しても同様の誤差が生じるとしたら,高低差の起伏によるものか地球が球面であることによる誤差になりますが,もし扱ってる対象(点AB間の距離等)が何十km、何百kmになるものではなく > 距離は数十~数百メートル程度のオーダーです。 あれば,その必要も特にないと思うので,別の要因(座標変換時の計算ミス?)となりますが・・・ 座標系の選び方で誤差が生じることはないと思います.

関連するQ&A

専門家に質問してみよう