CLLocationManager 클래스는 CoreLocation.framework 에 포함되어 있다.
@property (nonatomic, retain) CLLocationManager *locationManager; // 위치 정보를 관리할 매니저 객체
.m 파일
- (void)viewDidLoad
{
[super viewDidLoad];
if (locationManager == nil) {
locationManager= [[CLLocationManager alloc] init];
}
locationManager.delegate= self; // 델리게이트 연결
}
// 위치 정보 갱신을 시작
- (void) startUpdateLocation {
NSLog(@"Location update start");
if (locationManager == nil) {
locationManager= [[CLLocationManager alloc] init];
}
locationManager.desiredAccuracy= kCLLocationAccuracyBest; // 정밀도 옵션을 선택해준다. (종류는 아래 참조)
[locationManager startUpdatingLocation];
}
// 위치 정보 갱신을 종료
- (void) stopUpdateLocation {
NSLog(@"Location update stop");
[locationManager stopUpdatingLocation];
}
#pragma mark - CLLocationManagerDelegate
// 위치 정보가 갱신될때 받는 델리게이트.
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@"Location is changed");
NSLog(@"Altitude : %f", newLocation.altitude);
NSLog(@"Latitude : %f", newLocation.coordinate.latitude);
NSLog(@"Longitude : %f", newLocation.coordinate.longitude);
}
desiredAccuracy 는 센서의 정밀도를 설정하고, 아래와 같은 종류가 있다.
● kCLLocationAccuracyBestForNavigation;
● kCLLocationAccuracyBest;
● kCLLocationAccuracyNearestTenMeters;
● kCLLocationAccuracyHundredMeters;
● kCLLocationAccuracyKilometer;
● kCLLocationAccuracyThreeKilometers;
정밀도가 올라갈 수록 베터리 소모가 심해지니 필요에 따라 사용하면 된다.
반응형
'Programming > iOS - ObjC' 카테고리의 다른 글
UIWebView - POST request 사용 및 Header 넣기 (0) | 2014.12.02 |
---|---|
[Deprecated-iOS7] UITextAttributeTextColor (0) | 2014.12.02 |
[APNs, Notification] 알림 설정 (iOS8 SDK 변화) (0) | 2014.10.16 |
RangeOfString 주의할 점 (0) | 2014.07.23 |
UINavitaionController - 생성, 이동 (0) | 2014.06.12 |
NSDate - 현재날짜와 시간 포메팅 (0) | 2014.06.10 |
UITextView - 내용추가하고 자동으로 스크롤 내리기 (0) | 2014.06.10 |
NSArray내의 NSDictionary 그룹별로 추출하기 (2) | 2011.01.27 |
UINavigationController - 이전 뷰로 이동 (0) | 2011.01.14 |
아이폰 흔들기(shaking) 검사 (0) | 2010.12.28 |