LocationManager 1.0.1

LocationManager 1.0.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布2016年4月
SPM支持 SPM

Futured 维护。



  • 作者
  • Jakub Knejzlik

LocationManager

使用方法

要运行示例项目,首先克隆仓库,然后从 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 文件。