1

固定位置から 2 つの GPS 位置を結んだ線までの最も近い位置を見つけたい。図を使って説明してみました。すべての位置は GPS 座標です。位置 P から、位置 A と位置 B を結ぶ線までの最短距離、つまり、P からの線は、A と B を結ぶ線で 90 度になることを知りたいです。このための既存の実装または同じためのアルゴリズム。どうもありがとう。 ここに画像の説明を入力

私が計算するように言われた方法は、最初に GPS 位置をデカルト座標に変換することです。変換には、基準位置 (Q_Ref_longitude、Q_Ref_latitude) を使用します。

x=(longitude-reflong)*π/180*r_e, r_e radius of earth
y=artanh(sin⁡(latitude))
Therefore the reference point has the Cartesian coordinates (0,artanh(sin⁡(reflat))).
conv(refp)=(0,artanh(sin⁡(reflat)))
All positions A,B, P are converted to (x,y) coordinate system
Calculation of the intercept point with reference Cartesian coordinates (x,y)∈R^2:
In the following context (vp) ⃗∈R^2 is the position vector of the P in reference Cartesian coordinates.
<a ⃗,b ⃗&gt; is the dot product of two vectors a ⃗ and b ⃗.
(op2) ⃗  refers to position A
(op1) ⃗ refers to position B
(vp) ⃗ refers to position P
(op1) ⃗,(op2) ⃗,(vp) ⃗∈R^2

    intPoint=[(<((op2)-(op1)),((vp)-(op1))>)/(<((op2)-(op1)),((op2)-(op1))>)]*((op2)-(op1))+(op1)

The intercept point has to be transformed back into GPS coordinates with the following inverse formula:

Iconv:R^2→[-180°,180°]×[-90°,90]
longitude=x+reflong
latitude=arcsin⁡(tanh⁡(y))

誰かがこの方法について知っていますか?私はこのようにしようとしましたが、負の値が得られます。

4

1 に答える 1