【发布时间】:2021-01-13 12:28:51
【问题描述】:
从 iOS 上的磁力计获取磁北矢量时,我知道有三种方法可以做到这一点。只有第一种方法似乎给出了合理的结果。根据 Compass 应用程序,手机背面平放,长轴指向 97° E。
-
CLLocationManager委托过载didUpdateHeading。这会给出CLHeading和(-18.4, -15.3 -44.9)的(x,y,z)向量以及其他有用的项目,例如磁/真航向、准确性、时间戳。
这似乎是合理的!
-
CMMotionManagerstartMagnetometerUpdates。这给出了CMMagneticField和(x,y,z)的(36.5, -10.1, -375)向量。需要明确的是,Z 轴值为负三百七十五微特斯拉。这似乎不合理。如果我旋转手机,z的值会波动,但不会低于-283,这就是手机从上面提供结果的位置反转的时候。
这是还没有被过滤掉的内部磁场吗?
-
CMMotionManagerstartDeviceMotionUpdates。这给出了CMCalibratedMagneticField和field属性(x,y,z)(0.0, 0.0, 0.0)向量。这似乎没有返回任何有意义的数据,尽管事件快速且持续地触发。
为什么这不返回任何值?
【问题讨论】:
标签: ios swift core-location core-motion