我希望获得 iPhone 设备相对于基准位置的准确当前俯仰、偏航和横滚。很像指南针应用程序中所做的事情。我在网上找到的大部分内容都是关于检测结果中的变化,而我正在寻找相对于基本位置的绝对位置,基本位置(pitch: 0, roll: 0 ,偏航:0)
是这个位置:
有人可以建议我应该做什么才能得到这个吗?我需要这个一次性的,基本上是函数调用的结果。
最佳答案
设备不会持续跟踪方向。您的应用需要表明它需要此数据(通过 Info.plist
文件)并开始监视它,然后您才能访问它。
可通过deviceMotion
访问该信息CMMotionManager
类的属性。它是一个可选的,表示如果设备不支持此功能或者您没有事先开始监视数据,则该值为零。
您需要指定一个可用于此目的的引用系 startDeviceMotionUpdates(using:)
以便您获得正确的值。您想要的可能是 .xTrueNorthZVertical
。请注意,相关文档指出:
Note that using this reference frame may require device movement to calibrate the magnetometer. It also requires the location to be available in order to calculate the difference between magnetic and true north.
这可能意味着你不能自发地阅读它。您可能需要在您的应用程序启动或用户进入您需要的 View 时开始监视,并稍后在校准完成并且用户执行需要的操作时检查该值。
关于ios - 如何在 Swift 中获取 iPhone 当前的俯仰、偏航和横滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47770609/