iPhoneアプリ開発の虎の巻
HOME > CLLocationManager

CLLocationManager

GPSの位置情報や電子コンパスの機能を使いたい場合はCLLocationManagerクラスを使用します。

CLLocationManagerクラスは、「CoreLocation.framework」フレームワークを追加して使用します。

CLLocationManagerのクラス階層

NSObject ↑ CLLocationManager

生成

// 生成例
CLLocationManager *lm = [[CLLocationManager alloc] init];

CLLocationManagerのプロパティ

【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のメソッド

【CLLocationManagerの主要メソッド】
メソッド 説明
+(BOOL)headingAvailable コンパスの使用可否を判定する
+(BOOL)locationServicesEnabled GPSの使用可否を判定する
-(void)startUpdatingLocation GPSの使用を開始する
-(void)stopUpdatingLocation GPSの使用を停止する
-(void)startUpdatingHeading 電子コンパスを開始する
-(void)stopUpdatingHeading 電子コンパスを停止する

主要なメソッドのみ掲載しています。
 上記「CLLocationManagerのクラス階層」にあるクラスのメソッドも使用できます。

CLLocationManagerのデリゲートメソッド

【CLLocationManagerDelegate】
メソッド 説明
-(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];
}
totop