定位服务(基于iOS8)

定位服务

iOS提供了四种不同的定位服务,分别是
  • WiFi 通过WiFi的地理位置信息查询,比较省电
  • 蜂窝式移动电话基站 通过移动运营商基站进行定位
  • GPS卫星 通过GPS卫星进行定位,定位准确但是耗电量大
  • iBeacon iOS7之后支持iBeacon技术,iBeacon技术是苹果研发的基于低功耗蓝牙技术,通过多个IBeacon基站创建一个信号区域(地理围栏),当设备进入到该区域后就会,相应的应用程序便会提示用户进入了地理围栏.

定位服务编程

  • 定位服务框架主要是Core Location,定位时主要使用CLLocationManager,CLLocationManagerDelegate,CLLocation三个类
    • CLLocationManager 用于定位服务管理类,可以给我们提供位置信息和高度信息,也可以监控设备进入或者离开某个区域,还可以获取设备的运行方向.
    • CLLocationManagerDelegate是CLLocationManager的委托协议
    • CLLocation封装了位置和高度信息
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.manager = [[CLLocationManager alloc] init];
        //设置代理
    _manager.delegate = self;
        //设置精确度
    _manager.desiredAccuracy = kCLLocationAccuracyBest;
        //距离过滤器,定义了设备移动后获取位置信息的最小距离,单位是 米
    _manager.distanceFilter = 100.0f;


    [_manager requestWhenInUseAuthorization];
    [_manager requestAlwaysAuthorization];

}


- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
//    [_manager startUpdatingLocation];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{
    NSLog(@"更新了位置信息:");

}

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];

    [_manager stopUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
    NSLog(@"失败,错误信息为%@",error);
}
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
}
  • 注:需要在info.plist文件中添加NSLocationWhenInUseUsageDescription属性用来告知用户定位的目的,否则不会出现授权界面

地理信息反编码

  • 通过地理坐标返回某个地点的相关文字描述信息,封装在CLPlacemark中.地理信息反编码通过CLGeocoder类实现,通过reverseGeocodeLocation: completionHandler:^(NSArray < CLPlacemark > _Nullable placemarks, NSError * _Nullable error) 来实现的.

地理信息编码查询

  • 通过地理信息文字描述获取相应的地理坐标,查询结果是一个集合.
  • 主要通过这三个方法:
    • coder geocodeAddressString: completionHandler: 指定一个地址字符串参数进行查询
    • coder geocodeAddressDictionary: completionHandler:指定一个地址信息字典参数进行查询
    • coder geocodeAddressString: inRegion: completionHandler:通过指定地址字符串和指定区域进行查询,inRegion是查询范围,CLRegion类型

使用苹果自带地图

  • 核心是MKMapView
未完待续
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值