我们说我知道有两个人站在 GPS 位置A
和B
。 A
正在查看B
。
我想知道B
{(1 {}},x
,y
)基于z
,的坐标 A
轴是+y
的方向(因为B
正在查看B),A
是垂直于天空。 (因此+z
是+x
)
我知道如何将 GPS 坐标转换为 UTM ,但在这种情况下,似乎需要进行坐标系旋转和平移。我将提出一个计算,但在此之前,是否会有一些代码可供查看?
我认为这必须由许多应用程序处理,但到目前为止我找不到。
答案 0 :(得分:0)
将展位点转换为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
通过该矩阵从B
转换为B'
再次在#1 中链接的 QA 是如何做到的。它是简单的矩阵/向量乘法。