標籤:
一:匯入架構
#import <CoreLocation/CoreLocation.h>
二:設定代理及屬性
<CLLocationManagerDelegate>
@property (nonatomic, strong) CLLocationManager *locMgr;
三:方法實現
- (CLLocationManager *)locMgr
{
#warning 定位服務不可用
if(![CLLocationManager locationServicesEnabled]) return nil;
if (!_locMgr) {
// 建立定位管理者
self.locMgr = [[CLLocationManager alloc] init];
// 設定代理
self.locMgr.delegate = self;
}
return _locMgr;
}
- (void)viewDidLoad {
[super viewDidLoad];
// 開始定位使用者的位置
[self.locMgr startUpdatingLocation];
}
#pragma mark - CLLocationManagerDelegate
/**
* 只要定位到使用者的位置,就會調用(調用頻率特別高)
* @param locations : 裝著CLLocation對象
*/
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
// 1.取出位置對象
CLLocation *loc = [locations firstObject];
// 2.取出經緯度
CLLocationCoordinate2D coordinate = loc.coordinate;
// 3.列印經緯度
NSLog(@"didUpdateLocations------%f %f", coordinate.latitude, coordinate.longitude);
// 停止定位(省電措施:只要不想用定位服務,就馬上停止定位服務)
[manager stopUpdatingLocation];
}
/**
* 計算2個經緯度之間的直線距離
*/
- (void)countLineDistance
{
// 計算2個經緯度之間的直線距離
CLLocation *loc1 = [[CLLocation alloc] initWithLatitude:40 longitude:116];
CLLocation *loc2 = [[CLLocation alloc] initWithLatitude:41 longitude:116];
CLLocationDistance distance = [loc1 distanceFromLocation:loc2];
NSLog(@"%f", distance);
}
iOS定位--CoreLocation