在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