ARKIT-如何将相对于真实世界原点的位置(GPS坐标)转换为相对于Scenekit根节点

时间:2019-02-05 17:05:54

标签: swift scenekit arkit

因此,我将在这里尝试解释我的问题。我试图从真实世界的坐标(GPS)将一个节点放置在场景包中。我试图将wgs 84坐标转换为3D笛卡尔坐标,但这将使坐标相对于ecef世界原点。我想拥有相对于SceneView根节点的坐标,而且我不知道如何完成此操作。

我对矩阵转换和数学都不了解。如果有人能以任何编程语言编写正确的方向或提供解决方案,我将不胜感激。预先谢谢你

这是用于将gps坐标转换为ecef的公式,以Swift 4编写

    static func wgsllh2ecef(llh: [Double]) -> [Double]{
        let d: Double = WGS84_E * sin(llh[0])
        let N: Double = WGS84_A / sqrt(1 - d * d)

        let x = (N + llh[2]) * cos(llh[0]) * cos(llh[1])
        let y = (N + llh[2]) * cos(llh[0]) * sin(llh[1])
        let z = ((1 - WGS84_E * WGS84_E) * N + llh[2]) * sin(llh[0])
        return [x,y,z]
    }

0 个答案:

没有答案