CLLocationManager
GPSの位置情報や電子コンパスの機能を使いたい場合はCLLocationManagerクラスを使用します。
CLLocationManagerクラスは、「CoreLocation.framework」フレームワークを追加して使用します。
CLLocationManagerのクラス階層
NSObject
↑
CLLocationManager
生成
// 生成例
CLLocationManager *lm = [[CLLocationManager alloc] init];
CLLocationManagerのプロパティ
プロパティ名/型 | 読専 | 説明 |
---|---|---|
delegate (CLLocationManagerDelegate) |
デリゲートを指定する (例)lm.delegate = self; |
|
desiredAccuracy (CLLocationAccuracy) |
測位の精度を指定する kCLLocationAccuracyBest:最高精度 kCLLocationAccuracyNearestTenMeters:10m kCLLocationAccuracyHundredMeters:100m kCLLocationAccuracyKilometer:1km kCLLocationAccuracyThreeKilometers:3km (例)精度を最高精度にする lm.desiredAccuracy = kCLLocationAccuracyBest; |
|
distanceFilter (CLLocationDistance) |
位置情報取得間隔を指定する kCLDistanceFilterNone:指定なし (例)100m移動したら位置情報を更新する lm.distanceFilter = 100.0; |
主要なプロパティのみ掲載しています。
上記「CLLocationManagerのクラス階層」にあるクラスのプロパティも使用できます。
CLLocationManagerのメソッド
メソッド | 説明 |
---|---|
+(BOOL)headingAvailable | コンパスの使用可否を判定する |
+(BOOL)locationServicesEnabled | GPSの使用可否を判定する |
-(void)startUpdatingLocation | GPSの使用を開始する |
-(void)stopUpdatingLocation | GPSの使用を停止する |
-(void)startUpdatingHeading | 電子コンパスを開始する |
-(void)stopUpdatingHeading | 電子コンパスを停止する |
主要なメソッドのみ掲載しています。
上記「CLLocationManagerのクラス階層」にあるクラスのメソッドも使用できます。
CLLocationManagerのデリゲートメソッド
メソッド | 説明 |
---|---|
-(void)locationManager: (CLLocationManager *)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation |
GPSから値を取得したときに呼び出される |
-(void)locationManager: (CLLocationManager*)manager didUpdateHeading:(CLHeading*)newHeading |
電子コンパスから値を取得したときに呼び出される |
主要なデリゲートメソッドのみ掲載しています。
CLLocationManager例文
// インポートの宣言
#import <CoreLocation/CoreLocation.h>
// 例文
CLLocationManager *lm = [[CLLocationManager alloc] init];
if([lm locationServicesEnabled]){
lm.delegate = self;
lm.distanceFilter = 100.0;
lm.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[lm startUpdatingLocation];
}