获得准确的指南针航向(magneticHeading和准确性)



我正试图获得指南针航向的一个精确值(然后我将其与陀螺仪/加速度计一起使用来计算偏差)。

问题是,如果我在第一个结果之后停止更新标题,我的标题值为0.0?

我知道一些定位服务需要运行一段时间才能给出准确的结果,但如何为newHeading.magneticHeading实现这一点?

有什么建议吗?(我正在使用带有CLLocation Manager的CoreLocation)

func locationManager(manager: CLLocationManager,
    didUpdateHeading newHeading: CLHeading) {
        referenceHeading = newHeading.magneticHeading
        print("New reference heading = (newHeading.magneticHeading)")
        gotReferenceHeading = true
        locationManager.stopUpdatingHeading()
}

我根据@jtbandes的建议,添加了一个基于headingAccuracy的if语句。

if newHeading.headingAccuracy > 0 {
    referenceHeading = newHeading.magneticHeading
    gotReferenceHeading = true
    locationManager.stopUpdatingHeading()
}

所以我只是不断地收到标题更新,直到我有一个有用的结果。

最新更新