Ios中的定位功能是通过 Core Location框架实现的。它和地图开发框架是相互独立的。在Core Location中主要实现了定位和地理编码的功能!

  下面我们就来介绍一下它的属性,方法和代理方法!

  属性:

desiredAccuracy:定位精度,是一个枚举类型

//kCLLocationAccuracyBest:最精确定位

//kCLLocationAccuracyNearestTenMeters:十米误差范围

//kCLLocationAccuracyHundredMeters:百米误差范围

//kCLLocationAccuracyKilometer:千米误差范围

//kCLLocationAccuracyThreeKilometers:三千米误差范围

  distanceFilter: 位置信息更新最小距离,只有移动大于这个距离才更新位置信息,默认为kCLDistanceFilterNone:不进行距离限制

  对象方法:

startUpdatingLocation:开始定位追踪

stopUpdatingLocation : 停止定位追踪

startUpdatingHeading:开始方向追踪

stopUpdatingHeading:停止方向追踪

startMonitoringForRegion : 开始对某个区域进行追踪

stopMonitoringForRegion : 停止对某区域进行追踪

requestAlwaysAuthorization : 请求获得应用一直使用定位服务授权,注意使用此方法前要在info.plist中配置NSLocationAlwaysUsageDescription

requestWhenInUseAuthorization : 请求获得应用使用时的定位服务授权,注意使用此方法前在要在info.plist中配置NSLocationWhenInUseUsageDescription

  代理方法:

-(void)locationManager:(CLLocationManager*)manager didUpdateLocations:(NSArray *)locations; 位置发生改变后执行

- (void)locationManager:(CLLocationManager *)manager

didUpdateHeading:(CLHeading *)newHeading; 导航方向发生变化后执行

- (void)locationManager:(CLLocationManager *)manager

didEnterRegion:(CLRegion *)region;进入某个区域

- (void)locationManager:(CLLocationManager *)manager

didExitRegion:(CLRegion *)region;走出某个区域之后执行

  开代码:

//
//  ViewController.m
//  location
//
//  Created by jerehedu on 15/12/23.
//  Copyright (c) 2015年 jerehedu. All rights reserved.
//

#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>@interface ViewController ()<CLLocationManagerDelegate>{CLLocationManager *manager;CLGeocoder *geocoder;}@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 375, 122)];label.font = [UIFont systemFontOfSize:16];[self.view addSubview:label];if ([CLLocationManager locationServicesEnabled]) {NSLog(@"定位服务已经打开");}//如果没有授权则请求用户授权if ([CLLocationManager authorizationStatus]==kCLAuthorizationStatusNotDetermined){[manager requestWhenInUseAuthorization];}else if([CLLocationManager authorizationStatus]==kCLAuthorizationStatusAuthorizedWhenInUse){manager = [[CLLocationManager alloc]init];[manager requestAlwaysAuthorization ];[manager  requestWhenInUseAuthorization];manager.delegate = self;manager.desiredAccuracy = kCLLocationAccuracyBest;//精准度//    定位精度,枚举类型://    kCLLocationAccuracyBest:最精确定位//    CLLocationAccuracy kCLLocationAccuracyNearestTenMeters:十米误差范围//kCLLocationAccuracyHundredMeters:百米误差范围//kCLLocationAccuracyKilometer:千米误差范围//kCLLocationAccuracyThreeKilometers:三千米误差范围manager.distanceFilter = 1.0;//移动十米定位一次//    位置信息更新最小距离,只有移动大于这个距离才更新位置信息,默认为kCLDistanceFilterNone:不进行距离限制
        [manager startUpdatingLocation];}// Do any additional setup after loading the view, typically from a nib.
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{CLLocation *loctaion = [locations firstObject];NSLog(@"%f  %f",loctaion.coordinate.latitude,loctaion.coordinate.longitude );/*[geocoder reverseGeocodeLocation:loctaion completionHandler:^(NSArray *placemarks, NSError *error) {CLPlacemark *placemark=[placemarks firstObject];CLLocation *location=placemark.location;//位置CLRegion *region=placemark.region;//区域NSDictionary *addressDic= placemark.addressDictionary;//详细地址信息字典,包含以下部分信息//        CLPlacemark *placemark = [placemarks firstObject];//        placemark.addressDictionaryNSString *name=placemark.name;//地名NSString *thoroughfare=placemark.thoroughfare;//街道NSString *subThoroughfare=placemark.subThoroughfare; //街道相关信息,例如门牌等NSString *locality=placemark.locality; // 城市NSString *subLocality=placemark.subLocality; // 城市相关信息,例如标志性建筑NSString *administrativeArea=placemark.administrativeArea; // 州NSString *subAdministrativeArea=placemark.subAdministrativeArea; //其他行政区域信息NSString *postalCode=placemark.postalCode; //邮编NSString *ISOcountryCode=placemark.ISOcountryCode; //国家编码NSString *country=placemark.country; //国家NSString *inlandWater=placemark.inlandWater; //水源、湖泊NSString *ocean=placemark.ocean; // 海洋NSArray *areasOfInterest=placemark.areasOfInterest; //关联的或利益相关的地标}];*/
}
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}

作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/ 
版权声明:本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
技术咨询:

转载于:https://www.cnblogs.com/jerehedu/p/5198011.html

Ios开发之定位CLLocationManager相关推荐

  1. iOS 开发 申请定位

    在iOS8以后,苹果已经强制开发者在请求定位服务时获得用户的授权,此外iOS状态栏中还有指示图标,提示用户当前应用是否正在使用定位服务.另外在iOS8以后,苹果进一步改善了定位服务,让开发者请求定位服 ...

  2. iOS开发--添加定位功能

    .h 首先在头文件中#import <CoreLocation/CoreLocation.h> 添加CLLocationManagerDelegate协议 @property (stron ...

  3. iOS 自带定位CLLocationManager获取经纬度以及城市名称,并判断是否打开定位权限

    第一,我们要导入苹果自带的库 #import <MapKit/MapKit.h> 第二,我们要创建对象 @property (strong,nonatomic) CLLocationMan ...

  4. iOS开发请求定位权限总结

    1. iOS7以前 系统配置之后出现:永不.始终 选项 2. iOS8-10 系统配置之后出现:永不.始终 选项  通过配置 NSLocationWhenInUseUsageDescription 可 ...

  5. iOS开发 --- 定位功能(系统框架CoreLocation)

    最近在做定位功能,只需要获取当前位置信息,包括经纬度.位置等,不需要持续获取. 对CoreLocation的封装.将定位相关的代码从 Controller 中分离,封装到 NSObject 对象中.采 ...

  6. (0081)iOS开发之无限后台定位并上传数据到服务器

    关键词:ios 后台持续定位 iOS 后台的理解 // http://blog.csdn.net/u013773524/article/details/52153917 // http://blog. ...

  7. 转-iOS开发系列--地图与定位

    来自: http://www.cnblogs.com/kenshincui/p/4125570.html#autoid-3-4-0 概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功 ...

  8. iOS开发--地图与定位

    iOS开发--地图与定位 概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们 ...

  9. iOS开发系列--地图与定位

    概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...

最新文章

  1. SQL Server安装问题 mof 编译器无法连接到wmi服务器 不能在控件上调用Invoke或 BeginInvoke...
  2. 开启php,php开启openssl的方法
  3. 最新的Java SE平台和JDK版本发布计划
  4. Java的二十三种设计模式(建造者模式(Builder))
  5. 机器学习笔记(十二):聚类
  6. 互联网晚报 | 2月22日 星期二 | 海底捞预告去年最高亏45亿元;奥迪一汽新能源汽车项目启动;英雄互娱更名“英雄游戏”...
  7. pythongui界面复选框数值选择并求和_如何使用Python从图像中分离复选框按钮和复......
  8. 数据库流行度10月排行榜:Oracle 王者归来和 Redis 青云直上
  9. 力扣453.最小操作次数使数组元素相等
  10. asp.net 在webconfig里自定义错误页
  11. Mysql-5.5+Heartbeat-3.0.5+DRBD
  12. Tomcat配置Basic认证方案(一)
  13. 《移动平台应用开发实践》教学进程(12周)
  14. 由数据范围反推算法时间复杂度和需要用到的算法类型
  15. 基于Visual studio+Opencv+Python的透视变换、图像处理(灰度化、二值化、Canny边缘检测)模型——以2015数学建模A题太阳影子定位为例
  16. malloc.h头文件以及malloc函数
  17. java剪刀石头布编程_Java如何编写石头剪子布游戏程序
  18. JavaScript: Checkbox onChange event is differently processed by IE and FF
  19. python如何用一行代码生成[1,4,9,16,25,36,49,64,81,100]
  20. centos7升级python,yum出现问题“ImportError: No module named urlgrabber.grabber”

热门文章

  1. 基于springMVC的页面跳转、转发、重定向等
  2. iOS 文字样式处理总结(字体、前背景色、斜体、加粗、对齐、行间距、段间距、动态获取字符串label宽高等)...
  3. oracle日常维护(不断更新)
  4. java.lang.ClassNotFoundException: javax.servlet.Filter
  5. PHPSession-完全PHP5之session篇
  6. 杭电OJ1002大数据相加
  7. 测试AtomicInteger与普通int值在多线程下的递增操作
  8. 在 Windows 下部署 Go 语言环境
  9. opencv 任意角度旋转图像
  10. PHP curl 直接获取请求变量,不直接输出