一. 定位的使用
- 懒加载声明对象
// 使用的时候一定要声明成为持久变量,否则会提前销毁,不执行MCPositioning类里面的定位的代理方法
lazy var positioning: MCPositioning = {
let p = MCPositioning()
return p
}()
- 开启定位
// 一定不要写在懒加载中,不然只能定位一次
positioning.startPositioning(self)
- 获取定位的经纬度
positioning.clousre = { (latitude,longitude) in
let oneStr = "定位的纬度: \(latitude) ----经度: \(longitude)"
}
- 在设置页面重新开启了定位定位/重新进入前台 如何重新定位
// 监听重新变成活跃状态的通知
NotificationCenter.default.addObserver(self, selector: #selector(didBecomeActive), name: notificationName, object: nil)
@objc func didBecomeActive() {
// 重新开启定位
// 重新执行2和3步骤
}
- 说明
- 封装的MCPositioning类里面自动处理了没开启或者定位不可用的情况。
二. 编码 / 反编码
- 懒加载声明对象
// 使用的时候一定要声明成为持久变量,否则会提前销毁,不执行couslre
lazy var geccoder: MCGeocoder = {
let g = MCGeocoder()
return g
}()
- 编码
weakSelf!.geccoder.MCeverseGeocode(latitude: latitude, longitude: longitude, success: { (addressInfo) in
let twoStr = "反编码出来的地址:" + addressInfo.addressLines
}, failure: { (error) in })
- 反编码
weakSelf!.geccoder.MCLocationEncode(address: addressInfo.addressLines, success: { (coor) in
let threeStr = "根据地址编码出来的经纬度: \(coor.latitude)----\(coor.longitude)"
},failure: {(error) in })
网友评论