本章主要讲述了位置管理器CLLocationManager的用法以及地图包MapKit的初步使用。
其讲述脉络如下:
- Core Location使用的三种定位技术:GPS(A-GPS)定位,蜂窝基站ID定位,WPS(Wi-fi Positioning Service)Wi-Fi定位服务。
- 位置管理器的基本应用:
- 设置委托;
- 设置精度desiredAccuracy,系统提供了一系列的常量可供选择;位置管理器会根据不同的精度选择合适的定位技术,精度越高,耗电量越大;
- 设置距离筛选器distinceFilter,位置管理器会在位置变化超出筛选器数值后才通知委托;可以使用kCLDistanceFilterNone常量置为初始值;
- 位置管理器的启动和停止,一旦启动,位置管理器会持续定位,消耗电量,所以不用的时候可以停止;
- 位置管理器委托的使用
- 获取位置更新;委托对象需要遵循CLLocationManagerDelegate协议;然后实现locationManager:didUpdateLocations:方法;其第二个参数是CLLocation数组,最后一个对象是现在的位置;
- 获取位置信息,包括:经纬度、水平精度、海拔、垂直精度;
- 处理错误通知;kCLErrorDenied错误表示没有定位服务的权限,位置管理器不会启动;kCLErrorLocationUnknow表示其他错误,但是位置管理器会持续定位;
- Map Kit中MKMapView的使用
- addAnnotatioin:方法,其参数对象必须遵循MKAnnotatioin协议;用来往地图上加提示图标;
- setRegion:方法,其参数是一个结构体MKCoordinateRegion;用来设置当前显示的地图区域;