在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