系统方法定位 IOS

@property (nonatomic,retain)CLLocationManager * locationManager;



-(void)Positioning

{

    self.locationManager = [[CLLocationManageralloc] init];

    

    self.locationManager.delegate =self;

    

    // 设置定位精度

    // kCLLocationAccuracyNearestTenMeters:精度10

    // kCLLocationAccuracyHundredMeters:精度100

    // kCLLocationAccuracyKilometer:精度1000

    // kCLLocationAccuracyThreeKilometers:精度3000

    // kCLLocationAccuracyBest:设备使用电池供电时候最高的精度

    // kCLLocationAccuracyBestForNavigation:导航情况下最高精度,一般要有外接电源时才能使用

    self.locationManager.desiredAccuracy =kCLLocationAccuracyNearestTenMeters;

    

    // distanceFilter是距离过滤器,为了减少对定位装置的轮询次数,位置的改变不会每次都去通知委托,而是在移动了足够的距离时才通知委托程序

    //它的单位是米,这里设置为至少移动1000再通知委托处理更新;

    self.locationManager.distanceFilter = 1000.0f;// 如果设为kCLDistanceFilterNone,则每秒更新一次;

    

    

    if ([CLLocationManagerlocationServicesEnabled]) {

        // 启动位置更新

        //开启位置更新需要与服务器进行轮询所以会比较耗电,在不需要时用stopUpdatingLocation方法关闭;

        [self.locationManagerstartUpdatingLocation];

    

   else {

       NSLog(@"请开启定位功能!");

    

        

    }

}


#pragma mark - CLLocationManagerDelegate

// 地理位置发生改变时触发

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

{

    // 获取经纬度

   NSLog(@"纬度:%f",newLocation.coordinate.latitude);

   NSLog(@"经度:%f",newLocation.coordinate.longitude);

    // 停止位置更新

   NSString * lat = [NSStringstringWithFormat:@"%lf",newLocation.coordinate.latitude];

   NSString * lon = [NSStringstringWithFormat:@"%lf",newLocation.coordinate.longitude];

    

    [manager stopUpdatingLocation];

}


// 定位失误时触发

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

{

   NSLog(@"error:%@",error);

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值