美文网首页面试
CLLocationManager定位当前位置

CLLocationManager定位当前位置

作者: WindFeng | 来源:发表于2016-09-08 17:22 被阅读106次

1、导入CoreLocation.h 头文件,然后声明专属的管理者对象,遵守代理CLLocationManagerDelegate

@property(nonatomic,strong)CLLocationManager *locationManager;

2、在viewdidload里面判断当前设备定位服务是否打开了,然后设置代理和精度

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

//初始化管理对象

CLLocationManager *locationManager = [[CLLocationManager alloc]init];

self.locationManager = locationManager;

//判断当前设备定位服务是否打开

if (![CLLocationManager locationServicesEnabled]) {

NSLog(@"设备尚未打开定位服务");

}

//判断当前设备版本大于iOS8以后的话执行里面的方法

if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {

[locationManager requestAlwaysAuthorization];

[locationManager  requestWhenInUseAuthorization];

}

//设置代理

locationManager.delegate = self;

//设置定位精度

locationManager.desiredAccuracy = kCLLocationAccuracyBest;

////设置定位的频率,这里我们设置精度为10,也就是10米定位一次

CLLocationDistance distance = 10;

//给精度赋值

locationManager.distanceFilter = distance;

//开始启动定位

[locationManager startUpdatingLocation];

}

3、配置info.plist文件,把下面两个属性加到文件中去,并且确定xcode是否联网

NSLocationAlwaysUsageDescription

NSLocationWhenInUseUsageDescription

4、实现代理方法进行定位当前的位置,获取到经纬度

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray*)locations

5、通过反地理编码进行中文的输出即可

[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray* _Nullable placemarks, NSError * _Nullable error) {

6.不定位的时候应该停止定位

[self.locationManager stopUpdatingLocation];

//定位获取当前的经纬度

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray*)locations {    CLLocation *location = [locations lastObject];    NSLog(@"%@",location.timestamp);    CLLocationCoordinate2D coordinate = location.coordinate;    NSLog(@"%f    ,%f", coordinate.latitude,coordinate.longitude );        CLGeocoder *geocoder = [[CLGeocoder alloc]init];        [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray* _Nullable placemarks, NSError * _Nullable error) {

if (error != nil || placemarks.count == 0) {

NSLog(@"%@",error);

return ;

}

for (CLPlacemark *placemark in placemarks) {

self.addressTextLabel.text = placemark.locality;

NSLog(@"%@",placemark.locality);

}

}];

[self.locationManager stopUpdatingLocation];

}

相关文章

  • CLLocationManager定位当前位置

    1、导入CoreLocation.h 头文件,然后声明专属的管理者对象,遵守代理CLLocationManager...

  • iOS-定位

    使用地图的CLLocationManager完成定位效果.例子:定位当前所在位置,把所在城市的城市名显示在labe...

  • [iOS]CLLocationManager简单介绍

    CLLocationManager属性 locationServicesEnabled 当前定位服务是否可用 de...

  • 地图定位1-iOS7.0定位配置

    iO78.0 定位 1.前台定位 1.创建位置管理者 CLLocationManager并设置代理 2.开始定位,...

  • IOS-CLLocationManager用法心得

    CLLocationManager定位权限问题。 我们在使用CLLocationManager进行定位的时候,肯定...

  • 地图定位2-iOS8.0定位配置

    iOS8.0 之后定位 1.前台定位 1.创建位置管理者CLLocationManager,并设置代理 2.开始定...

  • CLLocationManager

    CLLocationManager(位置管理者) CLLocationManager的常用操作 开始更新用户位置 ...

  • iOS 地图定位-定位

    定位 常用方法的介绍 CLLocationManager位置管理器,我们的有关于位置的方法和属性都是通过它来管理设...

  • 定位 CLLocationManager

    项目当中经常使用到需要获取用户的地理位置,经纬度,现在使用CLLocationManager 苹果自带的获取地理位...

  • ios 定位当前位置

    iOS定位当前城市 1、首先在plist表里边添加Privacy - Location Usage Descrip...

网友评论

本文标题:CLLocationManager定位当前位置

本文链接:https://www.haomeiwen.com/subject/mensettx.html