比方說,我知道兩個人站在GPS位置A
和B
。 A
正在查看B
。如何將相對GPS座標轉換爲「本地自定義」x,y,z座標?
我想知道B
「S(x
,y
,z
)基於座標上A
,其中的+y
軸線方向B
(因爲A
正在注視B),+z
是垂直於天空。 (因此+x
是A
右側)
我知道如何轉換GPS協調UTM,但在這種情況下,座標系旋轉和平移似乎需要。我會想出一個計算,但在此之前,會有一些代碼要看?
我認爲這必須由許多應用程序處理,但目前我找不到。
比方說,我知道兩個人站在GPS位置A
和B
。 A
正在查看B
。如何將相對GPS座標轉換爲「本地自定義」x,y,z座標?
我想知道B
「S(x
,y
,z
)基於座標上A
,其中的+y
軸線方向B
(因爲A
正在注視B),+z
是垂直於天空。 (因此+x
是A
右側)
我知道如何轉換GPS協調UTM,但在這種情況下,座標系旋轉和平移似乎需要。我會想出一個計算,但在此之前,會有一些代碼要看?
我認爲這必須由許多應用程序處理,但目前我找不到。
轉換攤位點到3D笛卡爾
GPS建議WGS84故見How to convert a spherical velocity coordinates into cartesian
構建變換矩陣與您所需的軸系
看到Understanding 4x4 homogenous transform matrices。所以你需要3個垂直單位矢量。該Y
是視圖方向,
Y = normalize(B-A);
的軸系之一將是最有可能的向上矢量,所以你可以使用近似
Z = normalize(A);
,併爲原點,你可以直接使用點A
。現在只需利用交叉產品創建垂直於兩者的X
並使Y
垂直於X
和Z
(如此保持)。欲瞭解更多信息請參閱Representing Points on a Circular Radar Math approach
Transfrom B
到B'
由矩陣
再在QA在#1是如何做到這一點的聯繫。這是簡單的矩陣/矢量乘法。