1.引入框架,import头文件
#import <CoreLocation/CoreLocation.h>
2.添加定位管理器为成员变量(否则无法定位),并用延迟加载的方法实例化它
@property (nonatomic,strong) CLLocationManager *locMgr;
1 /** 2 * 懒加载 3 */ 4 - (CLLocationManager *)locMgr 5 { 6 if (_locMgr == nil) { 7 _locMgr = [[CLLocationManager alloc]init]; 8 self.locMgr.delegate = self; 9 } 10 return _locMgr; 11 }
3.开始定位
1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 5 // 开始定位 6 [self.locMgr startUpdatingLocation]; 7 8 }
4.实现 CLLocationManager的代理方法
1 #pragma mark - CLLocationManager的代理方法 2 - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 3 { 4 // 取出位置,位置之所以是数组,是因为所在的位置即可是A地点,又可能是B地点,例如北京和河北的边界,一般取位置数组的第一个更为精确 5 CLLocation *location = [locations firstObject]; 6 7 // 取出经纬度 8 CLLocationCoordinate2D coordinate = location.coordinate; 9 10 // 输出 11 NSLog(@"经度是%f , 纬度是%f",coordinate.longitude,coordinate.latitude); 12 13 // 停止定位,该代理方法调用频率非常高,不需要定位时,请停止定位 14 [self.locMgr stopUpdatingLocation]; 15 }
时间: 2024-10-11 12:40:49