苹果地图使用 定位 计算距离

CoreLocation.framework 定位要用到这个框架

import

info 设置 NSLocationWhenInUseUsageDescription boolean YES
创建对象 》设置代理 >设置》开的更新位置

 @property (nonatomic,strong) CLLocationManager * manger;
    // ios8要定位,要请求定位的权限
if ([[UIDevice  currentDevice].systemVersion doubleValue] >= 8.0) {
    [manager requestWhenInUseAuthorization];
}

//完整代码
#import "ViewController.h"
#import

        @interface ViewController ()
        @property (nonatomic,strong) CLLocationManager * manger;
        @end

        @implementation ViewController

        - (void)viewDidLoad {
            [super viewDidLoad];
            
            //1>CLLocationManager对象
            CLLocationManager *manager = [[CLLocationManager alloc] init];
            
            // 设置代理
            manager.delegate = self;
            
            // 距离过滤 设置多少米定位一次
            manager.distanceFilter = 1000;
            
            // 设置定位的精确度,误差不超过10米,定位越精确,越耗电
            manager.desiredAccuracy = 10;
            
            //2>调用 startUpdatingLocation方法进入定位
            [manager startUpdatingLocation];
            
            // ios8要定位,要请求定位的权限
            if ([[UIDevice  currentDevice].systemVersion doubleValue] >= 8.0) {
                [manager requestWhenInUseAuthorization];
            }

            
            //赋值
            self.manger = manager;
        }
    #pragma mark 定位到经纬后调用
    /*
     * 这方法调用非常频烦,时刻定位你当前的位置
     * 导航时需要时刻定位,但是,只是获取当前位置信息,不需要时时定位
     */
    -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
        
    //    CLLocation 是一个位置对象
        for (CLLocation *loc in locations) {
            // 经纬度
            CLLocationCoordinate2D coordinate =  loc.coordinate;
            NSLog(@"定位到经度 %lf,纬度 %lf",coordinate.longitude,coordinate.latitude);
            
            // 当前位置是广州,计算距离北京距离,单位是米 / 1000
            CLLocation *bjLocation = [[CLLocation alloc] initWithLatitude:23.05 longitude:113.15];
            double distance = [loc distanceFromLocation:bjLocation];
            NSLog(@"当前位置与北京的距离 %lf 公里",distance / 1000);
        }
        
        // 停止定位
        [manager stopUpdatingLocation];
        

    }
    @end

你可能感兴趣的:(苹果地图使用 定位 计算距离)