使用新型并发的异步定位流

如果您认为继续开发此软件包是值得的,请为该仓库点赞。这将帮助我了解哪个软件包更值得投入精力。

此软件包在底层使用 Core Location,以利用 GPS 的强大功能进行精确高效的定位跟踪。通过利用 Swift 的 async/await 并发模型,它提供了一种现代、简洁且可扩展的方式来异步流式传输 GPS 数据。Core Location 与 GPS、Wi-Fi 和蜂窝网络协同工作以确定设备的位置,从而确保高精度和最佳性能。

SwiftUI 示例

适用于 watchOS

simulate locations

如果您正在使用模拟器,请不要忘记模拟位置

simulate locations

功能特性

如何使用

1. 在 info 中添加选项 "Privacy - Location When In Use Usage Description"

Add to info

后台更新

2. 添加或注入 LocationStreamer 到 View 中

    @StateObject var service: LocationStreamer 

对于 iOS 17+ 和 watchOS 10+,使用 @State 宏

    @State var service: ObservableLocationStreamer

3. 在异步环境或查看 SwiftUI 示例中调用 LocationStreamer 方法 start()

    try await service.start()

LocationStreamer 参数

参数 描述
strategy 发布位置的策略。默认值为 KeepLastStrategy。另一个预定义选项是 KeepAllStrategy,或者您可以实现并测试您自己的自定义策略,通过遵循 LocationResultStrategy 协议。
accuracy 地理坐标的精度。
activityType 指示与位置更新关联的活动类型的常量。
distanceFilter 从现有位置触发更新的距离(以米为单位)。
backgroundUpdates 一个布尔值,指示应用程序在后台运行时是否接收位置更新。

参数 描述
strategy 发布位置的策略。默认值为 KeepLastStrategy。另一个预定义选项是 KeepAllStrategy,或者您可以实现并测试您自己的自定义策略,通过遵循 LocationResultStrategy 协议。
locationManager 预配置的 CLLocationManager

默认位置

  1. Product > Scheme > Edit Scheme
  2. 点击 Run .app
  3. Option 选项卡
  4. 已选中 Core Location > 选择您的位置
  5. 按 OK

Default location

文档(API)