swift - 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]
}
解决方案
推荐阅读
- javascript - 反应检测单击svg中的多边形
- typescript - 尝试将多个 keyof 分配给 Typescript 中的动态描述对象
- javascript - sql格式数字的数据表搜索
- python - 尝试将 3 个数据框合并为一个,同时保持第一列不变
- macos - 为什么 Inkscape 创建的 svg 文件突然无法在 Graphic 中打开?
- oracle-adf - 关于删除和应用 ADF 视图标准以编程方式查看对象的查询
- angular - Agm 多边形 polyClick 事件
- ruby-on-rails - 如何为 simple_form 添加多个标签?
- docker - Docker 启动错误:无法检查网桥接口是否存在:没有可用的缓冲区空间
- python - 从 TSV 列中的嵌套 JSON 中提取 n 个值