2015年接触过地图开发,在商场内使用蓝牙定位,现在回头想想时间过的好快啊,14年刚接触iOS,任何一个知识点对于我来说都是陌生和深奥的,一本技术书要读5~6遍才能记住知识点,相关技术文章读个几遍也只是会copy,实现功能后三天两头出现点问题。
今天读到一篇推送文章关于地图,顺便在回忆一下定位。
A
模块与常见的类
- 定位所包含的类都在
CoreLocation
模块中,所以必须导入import CoreLocation
CLLocation
:表示某个位置的地理信息,比如经纬度、海拔等CLLocationManager
:定位管理器,可以理解为定位不能自己工作,需要有个管理者对它进行全过程监督。CLGeocoder
:地理编码,分为两种- 正向地理编码:根据位置信息,获取具体的经纬度等信息
- 反向地理编码:根据给定的经纬度等信息,获取位置信息
CLPlacemark
:位置信息,包含的信息如国家、城市、街道等CLLocationManagerDelegate
:定位代理,不管是定位成功与失败,都会有相应的代理方法回调- 具体的工作流程
(1)CLLocationManager
发起定位,定位成功或者失败都会回调CLLocationManagerDelegate
中相应的代理方法
(2)在成功的代理方法中获取CLLocation
对象,进而获取经纬度
(3)通过CLGeocoder
获取经纬度对应的位置信息CLPlacemark
(4)通过<