CoreLocation框架--监测方向/地磁传感器

方向监测:

通过磁力计获取方向(heading)

创建CLLocationManager对象,遵守CLLocationManagerDelegate协议。

[CLLocationManager headingAvailable];判断手机是否支持磁力计。

[self.locationManager startUpdatingHeading];开始监测方向。

重写方法:

-(void)locationManager:(CLLocationManager *)manager
    didUpdateHeading:(CLHeading *)newHeading;
-(BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager;
//return yes 方向校准仪

 

CLHeading拥有的属性:

typedef double CLLocationDirection;

@property(readonly, nonatomic) CLLocationDirection magneticHeading;

//表示与地磁北极的夹角

//0度代表指向地磁北极  90度向东 180向南 270向西

//若headingAccuracy属性的值为负 则该属性值不可信

@property(readonly, nonatomic) CLLocationDirection trueHeading;

//表示与地理北极的夹角

//0度代表指向地磁北极  90度向东 180向南 270向西 负值表示该属性未获得

 

//用户正持面向手机时,手机顶端指向的方向定义为手机指向的方向。(portrait mode)

 

@property(readonly, nonatomicCLLocationDirection headingAccuracy;

//magneticHeading的值与真实地磁北极的偏移角度,该值越小则精确度越高

//该值为负时不可用,未校准方向或有强干扰源时会发生

@property(readonly, nonatomic, copy) NSDate* timestamp;

//监测方向时的时间戳

@property(nonatomic, readonly, copy) NSString* description;

//方向监测的详细信息生成的字符串

 

typedef double CLHeadingComponentValue; //磁场强度 单位是微特斯拉

@property(readonly, nonatomic) CLHeadingComponentValue x; //磁场x轴分量强度

@property(readonly, nonatomic) CLHeadingComponentValue y; //磁场y轴分量强度

@property(readonly, nonatomic) CLHeadingComponentValue z; //磁场z轴分量强度

 

 

CLLocationManager中

typedef double CLLocationDegrees;

@property(assignnonatomic) CLLocationDegrees headingFilter;

//单位为角度 可以过滤监测值 当改变超过设定角度时才触发代理

 

 

 

 

 

 

posted @ 2016-03-21 22:26  小天sean  阅读(428)  评论(0编辑  收藏  举报