要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install
LocationManager 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "LocationManager"
import LocationManager
let desiredAccuracy: CLLocationAccuracy? = kCLLocationAccuracyBestForNavigation
LocationManager.sharedManager.getCurrentLocation(desiredAccuracy: desiredAccuracy).then { location in
print("your current location: \(location)")
}.error { error in
print("error getting location: \(error)")
}
当使用位置观察时,您可以使用以下参数
desiredAccuracy: CLLocationAccuracy?
- 指定期望的精度(有关更多信息,请参阅 CoreLocation 文档)import LocationManager
class MyObserver: LocationObserver {
func didUpdateLocation(manager: LocationManager, location: CLLocation) {
print("your location changed \(location)")
}
}
let desiredAccuracy: CLLocationAccuracy? = kCLLocationAccuracyBestForNavigation
let distanceFilter: CLLocationDistance? = 50 // meters
let observer = MyObserver()
LocationManager.sharedManager.addLocationObserver(observer,desiredAccuracy: desiredAccuracy,distanceFilter: distanceFilter)
当使用位置观察时,您可以使用以下参数
desiredAccuracy: CLLocationAccuracy?
- 指定期望的精度(有关更多信息,请参阅 CoreLocation 文档)distanceFilter: CLLocationDistance?
- 过滤距离(新位置和上一个位置之间的期望距离)minimumTimeInterval: NSTimeInterval?
- 指定位置更新方法应调用的频率(调用之间的最小间隔 - 最大频率)maximumTimeInterval: NSTimeInterval?
- 强制在没有新位置可用时调用位置更新(调用之间的最大间隔)LocationManager
有效使用所有请求和观察者的过滤和精度,并计算所需的最大的值,以防止耗电。
例如,如果有两个距离过滤器为50m和100m的观察者,整体距离过滤器为50m。当移除具有50m过滤器的观察者时,整体距离过滤器重新计算为所需的最大的值(100m)。同样适用于期望精度。
LocationManager 可在 MIT 许可证下获得。有关更多信息,请参阅 LICENSE 文件。