Position
是一个轻量级的 iOS 定位库。
功能 | |
---|---|
"一次性"可定制定位请求 | |
基于距离和时间的位置筛选 | |
位置跟踪支持 | |
根据跟踪自动管理能源资源 | |
权限检查和响应支持 | |
创建 vCard 位置 | |
在后台设置为低功耗位置跟踪时自动调整 | |
从电池监控设置自动调整低功耗位置跟踪 | |
基于多个组件观察器的架构 |
快速入门
Position
可以使用 Swift Package Manager 或 Cocoa 依赖管理器 CocoaPods 进行安装。或者,您可以简单地将 Position
的源文件复制到您的 Xcode 项目中。
# CocoaPods
pod "Position", "~> 0.7.0"
# Carthage
github "piemonte/Position" ~> 0.7.0
# SwiftPM
let package = Package(
dependencies: [
.Package(url: "https://github.com/piemonte/Position", majorVersion: 0)
]
)
使用方法
示例项目提供了一个如何集成 Position
的示例,否则您可以遵循以下步骤:
确保您的应用 Info.plist
文件包括位置使用描述、所需的设备功能 "location-services" 以及所需的背景模式(如果需要)。
见示例项目的示例。
如果需要,将文件导入并设置您的组件为一个 PositionObserver。
import Position
class ViewController: UIViewController, PositionObserver {
// ...
让组件将自己添加为观察者并配置适当的设置。
override func viewDidLoad() {
super.viewDidLoad()
// ...
Position.shared.addObserver(self)
Position.shared.distanceFilter = 20
if Position.shared.locationServicesStatus == .allowedWhenInUse ||
Position.shared.locationServicesStatus == .allowedAlways {
Position.shared.performOneShotLocationUpdate(withDesiredAccuracy: 250) { (location, error) -> () in
print(location, error)
}
} else {
// request permissions based on the type of location support required.
Position.shared.requestWhenInUseLocationAuthorization()
// Position.shared.requestAlwaysLocationAuthorization()
}
}
如果有必要,观察代理。
func position(position: Position, didChangeLocationAuthorizationStatus status: LocationAuthorizationStatus) {
// location authorization did change, often this may even be triggered on application resume if the user updated settings
}
记住 在创建基于位置的 App 时,尊重用户的隐私,并负责任地使用他们的位置。如果您应用需要位置权限 kCLAuthorizationStatusAuthorizedAlways
,则尤其如此。
要使用vCard分享位置,只需在任何位置对象实例上调用vCard功能即可。
let fileURL = location.vCard()
核心位置扩充
位置功能集成了一系列针对核心位置库的扩充,例如地理空间数学工具。例如,可以计算两个坐标点之间的方向,使得方向视图和其他航位表示成为可能。
文档
您可以在这里找到文档。文档使用jazzy生成,托管在GitHub-Pages。
社区
- 需要帮助?请使用带有标签“position-swift”的Stack Overflow。
- 有问题?请使用带有标签“position-swift”的Stack Overflow。
- 发现了bug?请创建一个issue。
- 有功能想法?请创建一个issue。
- 想贡献?提交一个pull request。
资源
许可证
位置可在MIT许可下使用,更多详情请参见 LICENSE 文件。