iOS-GPS定位基础知识
iOS -GPS定位服务和地图应用是两套完全不同的API。
iOS 7 的 四种定位服务
- GPS卫星 优点最为准确,缺点 耗电量大,不能遮挡(建筑物内不行)
- WI-FI通过WIFI路由器定位 优点比较省电,经济实惠
- 蜂窝式移动电话基站。通过移动运营商基站定位 误差比较大
- iBeacon微定位。 苹果公司自己研发的iBeacon,使用低功耗的蓝牙。
- CLLocationManager 用于定位管理的类,他提供位置信息和高度信息,也可以监控设备进入或者离开某个区域,还可以获得设备的运行方向;
- CLLocationManagerDelegate。CLLocationManager类的委托协议;
- CLLocation 封装了位置和高度信息;
<span style="font-family:SimSun;font-size:12px;">- (void)viewDidLoad { [super viewDidLoad]; locationManager = [[CLLocationManager alloc]init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyBest; locationManager.distanceFilter = 1000.f; }</span>初始化一个定位管理器 设置好代理
desireAccuracy这个属性用来设置经度的
<span style="font-family:SimSun;font-size:12px;">kCLLocationAccuracyBest; 电池供电的最高精度 kCLLocationAccuracyNearestTenMeters; 精确到10米 kCLLocationAccuracyHundredMeters;精确到100米 kCLLocationAccuracyKilometer;精确到1000米 kCLLocationAccuracyThreeKilometers;精确到3000米</span>
经度越高获得信息时间越短。耗电越多。
distabceFilter 属性定义了设备移动后获得位置信息的最小距离,单位是米;
设置距离筛选器distanceFilter,表示设备至少移动1000米,才通知委托更新
在视图展现的时候分别开启和关闭定位服务
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [locationManager startUpdatingLocation]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; [locationManager stopUpdatingLocation]; }
当获取位置成功的时候进行调用代理来获取数据
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation * currentLocation = [locations lastObject]; double altitude = currentLocation.altitude;//高度 double latitude = currentLocation.coordinate.latitude; double longitude = currentLocation.coordinate.longitude; }
代理中得lication是位置数据数组,最后一个是当前位置 ;
cllocation类
初始化函数 – initWithLatitude:longitude: – initWithCoordinate:altitude:horizontalAccuracy:verticalAccuracy:timestamp: – initWithCoordinate:altitude:horizontalAccuracy:verticalAccuracy:course:speed:timestamp: 属性: coordinate property 地理坐标 altitude property 高度 horizontalAccuracy property 地图中显示圆的半径 verticalAccuracy property 垂直高度的精确度 timestamp property 位置确定的时间 – distanceFromLocation: 指定位置到当前位置的距离 speed property 运动的速度 course property 设备的方向
CLLocation 封装了位置、高度等信息 altitude是高度值 coordinate是封装的经纬度的结构体 CLLocationCoordinate2D typedef struct { CLLocationDegrees latitude; //经度 CLLocationDegrees longitude; //纬度 } CLLocationCoordinate2D; CLLocationDegrees 是double类型别名
以上所有内容来自关东升老师ios开发指南
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。