如何将相对GPS坐标转换为"local custom" x,y,z坐标?



假设我知道有两个人站在GPS位置ABA正在看着B.

我想知道B(xyz)基于A的坐标,其中+y轴是B的方向(因为A看的是B),+z是垂直到天空的方向。(因此+xA的右侧)

我知道如何将GPS坐标转换为UTM,但在这种情况下,似乎需要坐标系旋转和平移。我将提出一个计算,但在此之前,会有一些代码可以查看吗?

我认为这必须由许多应用程序处理,但到目前为止我找不到。

  1. 将展位点转换为 3D 笛卡尔

    GPS建议使用WGS84,请参阅如何将球面速度坐标转换为笛卡尔坐标

  2. 使用所需的轴构建转换矩阵

    请参阅了解 4x4 齐次变换矩阵。所以你需要 3 个垂直单位向量。Y是视图方向,因此

    Y = normalize(B-A);
    

    其中一个轴最有可能是向上向量,因此您可以使用近似值

    Z = normalize(A);
    

    作为原点,您可以直接使用点A。现在只需利用交叉乘积来创建垂直于两者X,并使Y垂直于XZ(因此向上保持)。有关详细信息,请参阅在圆形雷达数学方法上表示点

  3. 通过该矩阵从B转换为B'

    同样在#1中链接的QA中是如何做到这一点的。它是简单的矩阵/向量乘法。

相关内容

  • 没有找到相关文章

最新更新