比方说,我知道两个人站在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是如何做到这一点的联系。这是简单的矩阵/矢量乘法。