在iOS開發中自動獲取當前的位置(GPS定位)
開發環境 xcode5.0
首先我們要引入這個框架CoreLocation.framework
將這個庫引進來#import
還有他的代理方法 CLLocationManagerDelegate
GPSViewController.h
注意這裡的CLLocationManager* locationmanager要設置成全局變量,要不然得不到你想要的結果哦!具體為什麼,我現在還不清楚
#import#import @interface GPSViewController : UIViewController @property(nonatomic,retain) CLLocationManager* locationmanager; @end
#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