我在使用CLLocationManager
时面临问题。
我正在使用startUpdatingLocation
方法及其委托方法
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
我得到了newHeading.trueHeading
。
问题是有些时候newHeading.trueHeading
返回-1,一旦设备开始返回-1,它保持不变,意味着它总是返回-1。
任何人都可以告诉我这个问题的技术细节和修复方法。
在探索Apple发现的文件时
"A negative value means that the reported heading is invalid, which can occur when the device is uncalibrated or there is strong interference from local magnetic fields."
但没有信息如何避免或解决。
注意:我正在iPhone 4,iPhone 4S,iPad 2和iPad 3等真实设备上测试此应用。
答案 0 :(得分:1)
但没有信息如何避免或解决。
在这种情况下,如果您不取消此对话框,iOS
想要显示校准对话框。一旦用户通过图8运动校准设备,标题就会生效。
如果由于存在永久性强磁场(例如汽车内部)而无法工作,那么就没有机会获得磁力航向。
在这种情况下,您可以考虑使用位置管理器中的location.course,它通过GPS测量给出用户移动的方向。
答案 1 :(得分:0)
您可以使用CLHeading
属性检索沿X,Y和Z轴的原始磁性值。这些值以微指标表示,并标准化为Apple声明 -128至128 的范围。每个轴值代表与设备内置磁力计跟踪的磁场线的偏移。
请参阅此链接了解更多信息.. books
我希望这会对你有所帮助......
答案 2 :(得分:0)