IT虾米网

IOS 定位CoreLocation代码详解

lxf 2018年06月24日 手机开发 570 0
定位需要使用苹果官方的类库CoreLocation,通过GPS来确定位置信息 并且需要实现CLLocationManagerDelegate协议 1.首先添加类库CoreLocation
2.需要实现协议CLLocationManagerDelegate
设置全局的CLLocationManager就是gps位置管理器 打开 关闭 获取gps经纬度
     CLLocationManager *gpsManager;
3.开始定位
-(void)startLocation{ 
      
    //0.判断 
    if (![CLLocationManager locationServicesEnabled]) { 
        NSLog(@"没有定位 或者没有打开定位"); 
    } 
      
    //1.创建一个定位对象 
    manager = [[CLLocationManager alloc]init]; 
    //设置GPS的精确度 
    manager.desiredAccuracy = kCLLocationAccuracyBest; 
      
    //下面是精确度从高到低(越精确越耗电) 
    //kCLLocationAccuracyBestForNavigation   //(最精确) 
    //kCLLocationAccuracyBest; 
    //kCLLocationAccuracyNearestTenMeters; 
    //kCLLocationAccuracyHundredMeters; 
    //kCLLocationAccuracyKilometer; 
    //kCLLocationAccuracyThreeKilometers; 
      
    //2.设置代理 目的值GPS有数据来调用代理方法 
    manager.delegate = self; 
      
    //3.更新位置数据 
    [manager startUpdatingLocation]; 
} 
  
//4.结束定位 
-(void)stopLocation{ 
    [manager stopUpdatingLocation]; 
    manager = nil; 
} 
  
#pragma mark - 每次GPS更新位置信息都会被触发 
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ 
    for(CLLocation *loc in locations){ 
        //CLLocation 就是一次经纬度 , 方向 海拔 等信息 
        //loc.coordinate就是取的经纬度 
        CLLocationCoordinate2D l = loc.coordinate; 
        CLLocationDegrees lat = l.latitude; 
        CLLocationDegrees lng = l.longitude; 
        //海拔 
        CLLocationDistance altitude = loc.altitude; 
          
        NSLog(@"GPS (%f, %f, %f)", lat, lng, altitude); 
    } 
}

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

ios常用动画详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。