此软件包在底层使用 Core Location,以利用 GPS 的强大功能进行精确高效的定位跟踪。通过利用 Swift 的 async/await 并发模型,它提供了一种现代、简洁且可扩展的方式来异步流式传输 GPS 数据。Core Location 与 GPS、Wi-Fi 和蜂窝网络协同工作以确定设备的位置,从而确保高精度和最佳性能。
适用于 watchOS
如果您正在使用模拟器,请不要忘记模拟位置
CLLocationManager
@Published
属性进行实时 UI 更新,或者如果您可以使用 iOS 17 或更新版本,则使用 @observable。后台更新
UIBackgroundModes
中包含 location
,以便后台更新能够正常运行。 @StateObject var service: LocationStreamer
对于 iOS 17+ 和 watchOS 10+,使用 @State 宏
@State var service: ObservableLocationStreamer
try await service.start()
参数 | 描述 |
---|---|
strategy | 发布位置的策略。默认值为 KeepLastStrategy。另一个预定义选项是 KeepAllStrategy,或者您可以实现并测试您自己的自定义策略,通过遵循 LocationResultStrategy 协议。 |
accuracy | 地理坐标的精度。 |
activityType | 指示与位置更新关联的活动类型的常量。 |
distanceFilter | 从现有位置触发更新的距离(以米为单位)。 |
backgroundUpdates | 一个布尔值,指示应用程序在后台运行时是否接收位置更新。 |
或
参数 | 描述 |
---|---|
strategy | 发布位置的策略。默认值为 KeepLastStrategy。另一个预定义选项是 KeepAllStrategy,或者您可以实现并测试您自己的自定义策略,通过遵循 LocationResultStrategy 协议。 |
locationManager | 预配置的 CLLocationManager 。 |