Contents

Develop
2014.05.24 20:19

[ios] 아이폰 GPS 사용하기

조회 수 3929 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
GPS 사용을 위해서 CoreLocation.framework 프레임워크를 추가하고 아래 코드처럼..

# LocationServiceViewController.h
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>

@interface LocationServiceViewController : UIViewController
    <CLLocationManagerDelegate>
{
    CLLocationManager *locationManager;
    IBOutlet UILabel *latitude;
    IBOutlet UILabel *longitude;
    IBOutlet UILabel *Heading;
}

@property (nonatomic, retain) CLLocationManager *locationManager;
@property (nonatomic, retain) IBOutlet UILabel *latitude;
@property (nonatomic, retain) IBOutlet UILabel *longitude;
@property (nonatomic, retain) IBOutlet UILabel *Heading;

@end

# LocationServiceViewController.m
#import "LocationServiceViewController.h"

@implementation LocationServiceViewController

@synthesize locationManager;
@synthesize latitude;
@synthesize longitude;
@synthesize Heading;

// Implement viewDidLoad to do additional setup after loading the view,
// typically from a nib.
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.desiredAccuracy =
        kCLLocationAccuracyNearestTenMeters;

    self.locationManager.delegate = self;
    [self.locationManager startUpdatingLocation];
    [self.locationManager startUpdatingHeading];
    
    CLLocation *curPos = self.locationManager.location;

    // 위도
    NSNumber *nLatitude =
        [NSNumber numberWithDouble:curPos.coordinate.latitude];

    // 경도
    NSNumber *nLongitude =
        [NSNumber numberWithDouble:curPos.coordinate.longitude];
    
    NSString *sPosition1 =
        [NSString stringWithFormat:@"%.3f", [nLatitude doubleValue]];

    NSString *sPosition2 =
        [NSString stringWithFormat:@"%.3f", [nLongitude doubleValue]];

    //NSLog(@"%@",sPosition);
    [self.latitude setText:sPosition1];
    [self.longitude setText:sPosition2];
}

// 좌표 업데이트 델리게이트
-(void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
    fromLocation:(CLLocation *)oldLocation
{
    // GPS 좌표 업데이트 된 후 호출 됨
    
    // 위도
    NSNumber *nLatitude =
        [NSNumber numberWithDouble:newLocation.coordinate.latitude];

    // 경도
    NSNumber *nLongitude =
        [NSNumber numberWithDouble:newLocation.coordinate.longitude];
    
    NSString *sPosition1 =
        [NSString stringWithFormat:@"%.3f", [nLatitude doubleValue]];

    NSString *sPosition2 =
        [NSString stringWithFormat:@"%.3f", [nLongitude doubleValue]];
    //NSLog(@"%@",sPosition);
    [self.latitude setText:sPosition1];
    [self.longitude setText:sPosition2];
}

// 나침반 델리게이트
-(void)locationManager:(CLLocationManager *)manager
    didUpdateHeading:(CLHeading *)newHeading
{
    NSString *headingStr =
        [NSString stringWithFormat:@"%.4lf", newHeading.magneticHeading];

    //NSLog(@"%@",headingStr);
    [self.Heading setText:headingStr];
}

// GPS 오류 델리게이트
-(void)locationManager:(CLLocationManager *)manager
    didFailWithError:(NSError *)error
{
    // GPS 좌표 업데이트에 오류가 발생할 때 호출 됨
}

// Override to allow orientations
// other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:
    (UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    
    // Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    
    [self.locationManager stopUpdatingHeading];
    self.locationManager = nil;
}

- (void)dealloc {
    [super dealloc];
}

@end


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1173 System/OS 해커스랩 깨기.. 후후.. ㅋㅋ file hooni 2013.04.23 18408
1172 Etc 플라스터(Plaster) 수업 내용 secret hooni 2016.05.24 0
1171 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16383
1170 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21235
1169 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16483
1168 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 10953
1167 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15937
1166 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 921
1165 System/OS 컴파일러 수업 자료(교재 : 컴파일러 입문) file hooni 2003.04.23 21964
1164 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 718
1163 Etc 캘리포니아 운전면허 문제 file hooni 2017.07.22 952
1162 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98