CoreLocation定位

2016-06-28  本文已影响15人  亡灵诅咒

定位

-在iOS开发中想要加入定位和地图功能,那么必须基于CoreLocationMapKit2个框架进行开发
-CoreLocation:地理定位,地理编码,区域监听
-MapKit:地图展示,规划路线

定位

-CLLocation对象
-1.coordinate经纬度数据
-2.altitude海拔
-3.speed当前速度
-4.course航向
-5.- (CLLocationDistance)distanceFromLocation:(CLLocation *)location可以通过此方法来获取两个位置对象之间的物理距离

-iOS8.0之前的前台定位
//ios 8.0前台定位 CLLocationManager *locM = [[CLLocationManager alloc] init]; locM.delegate = self; //开始跟新 [locM startUpdatingLocation]; //-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations代理方法中可以获取位置请求信息

-iOS8.0后台定位:只需要在前台定位的基础上,勾选后台模式location updates
-iOS8.0之前的前后台定位授权:
[self.locationM requestAlwaysAuthorization];//强求前后台定位授权 KEY: NSLocationAlwaysUsageDescription//配置对应的key

定位-设置定位精确度

-通过 desiredAccuracy来设置定位精确度,定位本省非常耗电,定位的精确度越高,越耗电,为了省电尽量在满足需求的情况下低精确度
kCLLocationAccuracyBestForNavigation -> 最适合导航 kCLLocationAccuracyBest -> 精度最好的 kCLLocationAccuracyNearestTenMeters -> 附近10米 kCLLocationAccuracyHundredMeters -> 附近100米 kCLLocationAccuracyKilometer -> 附近1000米 kCLLocationAccuracyThreeKilometers -> 附近3000米

定位-监听用户授权状态

-可以在CLLocationManager的代理方法-locationManager: didChangeAuthorizationStatus:来获取当前的授权状态

kCLAuthorizationStatusNotDetermined 用户未决定
kCLAuthorizationStatusRestricted 访问受限制
kCLAuthorizationStatusDenied     定位被拒绝
kCLAuthorizationStatusAuthorizedAlways  前后台定位授权
kCLAuthorizationStatusAuthorizedWhenInUse 前台定位授权
地理编码/反地理编码

-地理编码:根据地质关键字,将其转换成为对应的经纬度等信息
-1.导入头文件#import <CoreLocation/CoreLocation.h>
-2.创建CLGeocoder对象
-3.根据地址关键字进行地理编码
[self.geocoder geocodeAddressString:地址 completionHandler:^(NSArray<CLPlacemark *> * __nullable placemarks, NSError * __nullable error)
-反地理编码:根据经纬度信息,将其转换成为对应的省市区街道等信息
-1.导入框架#import <CoreLocation/CoreLocation.h>
-2.创建CLGeocoder对象
-3.根据经纬度信息进行反地理编码
[self.geocoder reverseGeocodeLocation:[[CLLocation alloc] initWithLatitude:21 longitude:123] completionHandler:^(NSArray<CLPlacemark *> * __nullable placemarks, NSError * __nullable error)
-CLPlacemark:地址对象
location : CLLocation 类型, 位置对象信息, 里面包含经纬度, 海拔等等 region: CLRegion 类型, 地标对象对应的区域 addressDictionary : NSDictionary 类型, 存放街道,省市等信息 name: NSString 类型, 地址全称 thoroughfare: NSString 类型, 街道名称 locality: NSString 类型, 城市名称 administrativeArea : NSString 类型, 省名称 country: NSString 类型, 国家名称

上一篇 下一篇

猜你喜欢

热点阅读