ios CLLocationManager定位
来源:互联网 发布:js中for in循环 编辑:程序博客网 时间:2024/05/19 00:08
IOS中的core location提供了定位功能,能定位装置的当前坐标,同时能得到装置移动信息。因为对定位装置的轮询是很耗电的,所以最好只在非常必要的前提下启动。
其中,最重要的类是CLLocationManager,定位管理。
其定位有3种方式:
1,GPS,最精确的定位方式,貌似iphone1是不支持的。
2,蜂窝基站三角定位,这种定位在信号基站比较秘籍的城市比较准确。
3,Wifi,这种方式貌似是通过网络运营商的数据库得到的数据,在3种定位种最不精确
使用方式:
1,引入CoreLocation的包,一般的默认模板里是没有的,所以需要手动导入。
2,通过启动CLLocationManager来启动定位服务,因为定位信息是需要轮询的,而且对于程序来说是需要一定时间才会得到的,所以对于CLLocationManager的操作大多都给委托来完成。
加载CLLocationManager的代码:
CLLocationManager *locationManager = [[CLLocationManager alloc] init];//创建位置管理器 locationManager.delegate=self; locationManager.desiredAccuracy=kCLLocationAccuracyBest; locationManager.distanceFilter=1000.0f; //启动位置更新 [locationManager startUpdatingLocation];
desiredAccuracy为设置定位的精度,可以设为最优,装置会自动用最精确的方式去定位。
distanceFilter是距离过滤器,为了减少对定位装置的轮询次数,位置的改变不会每次都去通知委托,而是在移动了足够的距离时才通知委托程序,它的单位是米,这里设置为至少移动1000再通知委托处理更新。
startUpdatingLocation就是启动定位管理了,一般来说,在不需要更新定位时最好关闭它,用stopUpdatingLocation,可以节省电量。
对于委托CLLocationManagerDelegate,最常用的方法是:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation;
这个方法即定位改变时委托会执行的方法。
可以得到新位置,旧位置,CLLocation里面有经度纬度的坐标值,
同时CLLocation还有个属性horizontalAccuracy,用来得到水平上的精确度,它的大小就是定位精度的半径,单位为米。
如果值为-1,则说明此定位不可信。
另外委托还有一个常用方法是
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error ;
当定位出现错误时就会调用这个方法。
转载自:http://tcwliphone.blog.163.com/blog/static/198817030201110834758331/
- ios定位CLLocationManager
- ios CLLocationManager定位
- iOS CLLocationManager定位
- iOS CLLocationManager定位
- iOS CLLocationManager定位
- iOS--CLLocationManager 定位
- iOS CLLocationManager定位,IOS8注意
- Ios开发之定位CLLocationManager
- iOS开发之定位CLLocationManager
- IOS Swift3 使用 CLLocationManager 定位
- IOS:ios8.0下CLLocationManager定位服务
- IOS CLLocationManager 设置定位请求的方式
- 定位 (CLLocationManager )
- CLLocationManager 定位
- 定位CLLocationManager
- 定位 CLLocationManager
- IOS开发教程--Xcode6,CLLocationManager无法定位解决方案
- 关于IOS定位和CLLocationManager 小知识点总结
- Openfire第一章(Openfire的简介)
- 10月C++学习心得
- 新建String对象分配内存地址区分
- POJ2029——Get Many Persimmon Trees
- 清醒、坦诚是做人之必须;聪明、智慧是做事之必须!
- ios CLLocationManager定位
- 自己动手写CPU 笔记
- 自驾出游系列之(一): 自驾游应该准备和注意的事项
- Http Response Code[整理]
- Linux Socket TCP通信
- weblogic windows下创建 新域
- 数字隔离器件的选型与应用详解
- Virtualbox虚拟Ubuntu共享文件夹设置
- C#从入门到精通读书笔记 结构、类(四)