版本 0.11.0

Position 0.11.0

测试测试
Lang语言 SwiftSwift
许可 MIT
发布上次发布2022年9月
SPM支持 SPM

patrick piemonte 维护。



Position 0.11.0

Position 是一个轻量级的 iOS 定位库。

Build Status Pod Version Swift Version GitHub license

功能
"一次性"可定制定位请求
🌌 基于距离和时间的位置筛选
🛰 位置跟踪支持
📊 根据跟踪自动管理能源资源
🔒 权限检查和响应支持
📍 创建 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 文件。