我想在屏幕上显示指南针
if ([CLLocationManager headingAvailable]) {
CLController.locMgr.headingFilter = 0.1;
[CLController.locMgr startUpdatingHeading];
}
进入方法,进入方法
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
if (newHeading.headingAccuracy < 0){
NSLog(@"heading accuracy < 0");
return;
}
// Use the true heading if it is valid.
CLLocationDirection direction = ((newHeading.trueHeading > 0) ?
newHeading.trueHeading : newHeading.magneticHeading);
[self.delegate headingUpdate:direction];
}
之前它工作正常,但不知道现在发生了什么,
显示“航向精度<0”..
答案 0 :(得分:3)
负标题精度值仅表示指南针此刻无法获得良好的读数。也许手机靠近某个强磁场,或者您需要在图8中挥动它以校准指南针。这并不意味着您的代码不正确。
只需忽略headingAccuracy&lt; 0,只使用你得到的其他值。这是正常行为。