一、CoreLocation
1. 实现一次定位
1> 创建位置管理器 —> Strong
2> 手动请求授权(iOS8以后,必须授权)
3> 设置代理 —> 获取属性
4> 开始定位
5> 代理方法中停止定位
2.实现持续定位
1> --> ---> 2> 设置精准度 —> 降低通讯之间的计算,达到省电的目的
3.比较两个位置的距离
1. 创建Location对象 —> 最少需要经纬度
2. 调用对象方法distanceFromLocation即可
4.请求授权及iOS9新特性
请求授权
1> 请求授权:a. 调用授权方法后 b. 必须配置对应的plist键值描述文件
2> 如果两个方法同时写, 3> 基本上应用程序只需要使用 requestAlwaysAuthorization
4>
iOS9新特性
1.如果使用了,可以临时使用后台定位
二、Geocoder
1.地理编码
1> 创建CLGeocoder对象
2> 调用地理编码方法
3> 解析
3.1 防错处理
3.2 遍历地标对象CLPlacemark
4> 地理编码时,一个地名可能对应多个城市,有多个地标结果
2.反地理编码
反地理编码 是将 经纬度 转换成地球表面上的 地理位置 的过程(不止地名)
1> 创建CLGeocoder对象
2> 调用反地理编码方法 -> 需要一个CLLocation
3> 解析
3.1 防错处理
3.2 遍历地标对象CLPlacemark
4> 反地理编码时,基本上一个经纬度就对应一个地标结果(不排除多个的可能)
三、MapView的基本使用
1.显示用户位置
1> 创建位置管理器请求授权
2> 设置显示用户位置 用户跟踪模式
2.根据用户位置显示对应的大头针信息(反地理编码)
MKUserLocation: 用户位置的大头针模型
1> 使用反地理编码知识,进行大头针模型的标题和子标题的设置
3.设置地图显示类型
1> 设置此mapView即可 iOS9有五个属性,但是后面两个,对于中国无用
4. 设置以用户所在位置为中心点(最好手动再设置一次)
1> 设置中心点坐标 不能设置显示跨度 centerCoordinate
2> 设置范围,含了经纬度和显示跨度
5. 获取地图显示区域改变时的中心点坐标及显示跨度 放大地图 缩小地图
1> 双击,系统显示跨度变小一倍 —> 重设region属性即可 —> 点击放大
2> 跟上面做取反操作即可 * 2 —> 重设region属性即可
四、
1.添加大头针
1>. 自定义大头针模型
1> 导入框架
2> 遵守协议
3> 设置属性
2>. 使用地图属性,添加即可
3>. 如果想要点击时添加 —> 可以先获取点,然后转换成经纬度
2. 自定义大头针 -更改颜色 - 设置掉落动画
1> 实现代理方法viewForAnnotation
2> 创建并实现MKPinAnnotationView的两个属性
3> 如果是现实用户位置的大头针模型,一定不要自定义
3. 自定义大头针 -更改大头针的图像
1> 使用MKAnnotationView来创建大头针View
2> 增加模型的属性,创建模型时赋值
3> 设置自定义大头针View的image属性
4> 系统显示自己的位置的大头针也会动画掉落,可以取消