zoukankan      html  css  js  c++  java
  • iOS 8 开发运用系统自带CoreLocation 实现定位功能

    运用系统自带的CoreLocation实现手机定位功能

    .h

    1.首先导入系统类库

    #import <CoreLocation/CoreLocation.h>

    2,创建CllocationManager 对象

    {

    CllocationManager * _locationManager;

    }

    .m

    1.在.m中实现CllocationManager对象

    self._locationManager = [[CllocationManager alloc]init];

    2.// 设置代理

    self._locationManager.delegate = self; 

    3.设置精确度

    self._locationManager.desiredAccuracy = KCLLocationAccuracyBest;

    4.设置它的distanceFilter

    self._locationManager.distanceFilter = 10.0f;

    5.设置始终允许访问位置信息

    [self._locationManager requestAlwaysAuthorization];

    6.开始定位

    [self._locationManager startUpdatingLocation];

    7.实现协议方法

     1 -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
     2 {
     3 //进行地理编码
     4 CLGeocoder * geocoder = [[CLGeocoder alloc]init];
     5 //因为我这里是模拟器 所以使用的是[locations lastObject]  如果是真机得话可以试一下[locations lastObject]和[locations firstObject]的区别
     6 [geocoder reverseGeocodeLocation:[locations lastObject] completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error){
     7   for (CLPlacemark * placemark in placemarks) {
     8             NSDictionary * test = [placemark addressDictionary];
     9             [self._localtionManager stopUpdatingLocation];
    10             NSLog(@"%@", [test objectForKey:@"State"]);
    11 }];
    12 };
    13 -(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
    14 {
    15     if ([error code] == kCLErrorDenied) {
    16         NSLog(@"访问被拒");
    17     }
    18     if ([error code] == kCLErrorLocationUnknown) {
    19         NSLog(@"无法获取位置信息");
    20     }
    21 }

    注意: 在ios8上运用CllocationManager进行定位的话,需要对.plist 文件进行配置 需要在.plist文件里面添加如下;

    1,

    NSLocationAlwaysUsageDescription

    2,

    NSLocationWhenInUseUsageDescription

    添加完成之后就可以进行定位操作了.....祝大家生活愉快!!!!

  • 相关阅读:
    javaWeb快速入门
    SpringBoot的json序列化及时间序列化处理
    Springboot整合Mybatis 之分页插件使用
    springboot全局异常处理
    接口统一参数格式封装方法参数传递工具类
    基于AOP注解实现业务功能的动态配置
    sss
    sss
    sss
    sss
  • 原文地址:https://www.cnblogs.com/JustForHappy/p/4920468.html
Copyright © 2011-2022 走看看