首页 > 解决方案 > ARKIT - 如何将相对于真实世界原点的位置(GPS 坐标)转换为相对于 scenekit 根节点

问题描述

所以我会试着在这里解释我的问题。我试图从真实世界坐标(GPS)中放置一个节点到场景包中。我试图将 wgs 84 坐标转换为 3D 笛卡尔坐标,但这会使坐标相对于 ecef 世界原点。我想要相对于场景视图的根节点的坐标,但我不知道如何实现这一点。

我对矩阵转换和数学一无所知。如果有人能指出我正确的方向或提供用任何编程语言编写的解决方案,我将不胜感激。先感谢您

这是用于将 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]
    }

标签: swiftscenekitarkit

解决方案


推荐阅读