Contents

Develop
2014.05.24 20:19

[ios] 아이폰 GPS 사용하기

조회 수 3941 댓글 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


?

  1. [ios] 앱딜리게이트 라이프사이클 (AppDelegate Lifecycle)

    Date2014.05.09 CategoryDevelop Byhooni Views4447
    Read More
  2. [ios] 앱 딜리게이트 얻어오기. (AppDelegate)

    Date2014.05.10 CategoryDevelop Byhooni Views3337
    Read More
  3. [ios] URL 파라미터 파싱~

    Date2014.05.12 CategoryDevelop Byhooni Views3666
    Read More
  4. [ios] 언어, 지역, 국가 설정 가져오기

    Date2014.05.12 CategoryDevelop Byhooni Views269564
    Read More
  5. [ios] 아이폰 GPS 사용하기

    Date2014.05.24 CategoryDevelop Byhooni Views3941
    Read More
  6. [ios] iOS에서 디바이스 종류 알아오기

    Date2014.05.24 CategoryDevelop Byhooni Views3641
    Read More
  7. 알고리즘 성능분석

    Date2014.06.24 CategoryDevelop Byhooni Views2959
    Read More
  8. 알고리즘 성능 분석 기준

    Date2014.06.24 CategoryDevelop Byhooni Views2779
    Read More
  9. [ios] XCode에서 Provisioning Profile 여러개 중복될 때

    Date2014.06.26 CategoryDevelop Byhooni Views2810
    Read More
  10. [ios] TextField 특정 문자만 사용하도록 하기

    Date2014.06.30 CategoryDevelop Byhooni Views2673
    Read More
  11. OCB5 Injection 앗싸뵹! ㅋㅋ

    Date2014.07.01 CategoryAlgorithm Byhooni Views796
    Read More
  12. [ios] @property의 속성 (strong, weak, copy) 사용 경우

    Date2014.08.08 CategoryDevelop Byhooni Views1653
    Read More
Board Pagination Prev 1 ... 70 71 72 73 74 75 76 77 78 79 ... 98 Next
/ 98