在iOS開發中自動獲取當前的位置(GPS定位) – iPhone手機開發技術文章 iPhone軟體開發教學課程

在iOS開發中自動獲取當前的位置(GPS定位)

 

 

 

開發環境 xcode5.0

 

首先我們要引入這個框架CoreLocation.framework

將這個庫引進來#import

還有他的代理方法 CLLocationManagerDelegate

 

 

GPSViewController.h

註意這裡的CLLocationManager* locationmanager要設置成全局變量,要不然得不到你想要的結果哦!具體為什麼,我現在還不清楚

 

#import 
#import 
@interface GPSViewController : UIViewController

@property(nonatomic,retain) CLLocationManager* locationmanager;
@end

GPSViewController.m

 

 

#import GPSViewController.h

@interface GPSViewController ()

@end

@implementation GPSViewController

@synthesize locationmanager;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    locationmanager = [[CLLocationManager alloc]init];
    
    //設置精度
    /*
     kCLLocationAccuracyBest
     kCLLocationAccuracyNearestTenMeters
     kCLLocationAccuracyHundredMeters
     kCLLocationAccuracyHundredMeters
     kCLLocationAccuracyKilometer
     kCLLocationAccuracyThreeKilometers
     */
    //設置定位的精度
    [locationmanager setDesiredAccuracy:kCLLocationAccuracyBest];
    //實現協議
    locationmanager.delegate = self;
    NSLog(@開始定位);
    //開始定位
    [locationmanager startUpdatingLocation];
   
}

#pragma mark locationManager delegate - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { NSLog(@hello); //打印出精度和緯度 CLLocationCoordinate2D coordinate = newLocation.coordinate; NSLog(@輸出當前的精度和緯度); NSLog(@精度:%f 緯度:%f,coordinate.latitude,coordinate.longitude); //停止定位 [locationmanager stopUpdatingLocation]; //計算兩個位置的距離 float distance = [newLocation distanceFromLocation:oldLocation]; NSLog(@ 距離 %f,distance); } @end 










發佈留言