我正试图获得指南针航向的一个精确值(然后我将其与陀螺仪/加速度计一起使用来计算偏差)。
问题是,如果我在第一个结果之后停止更新标题,我的标题值为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()
}
所以我只是不断地收到标题更新,直到我有一个有用的结果。