如何从 CLLocationManager 更新创建 Observable

Posted

技术标签:

【中文标题】如何从 CLLocationManager 更新创建 Observable【英文标题】:How to create an Observable from CLLocationManager updates 【发布时间】:2016-04-09 21:11:53 【问题描述】:

我在我的应用程序中使用RxSwift 库。我正在尝试转换我的应用程序逻辑以处理 GPS 位置更新并将其移至可观察对象。为此,我一直使用此代码作为基线: https://github.com/ReactiveX/RxSwift/blob/master/RxExample/RxExample/Examples/GeolocationExample/GeolocationViewController.swift

但是,在上面的代码中,更新通过 UIView 扩展直接传递到 UIElement。这对我没有用,因为我需要将这些更新传递给非 UI 观察者变量以进行进一步的后台处理。

我是 RxSwift 的新手,我不知道在这种情况下如何构建我需要的 Observer 类型。我也无法在 RxSwift 文档中找到它。

如果有人可以评论如何使用 RxSwift 实现 CLLocationManager 的实现,我将不胜感激。

【问题讨论】:

【参考方案1】:

发现不需要创建 Observer,observable 本身有以下可能性:

let geolocationObservable = geolocationService.location .drive(onNext: (location: CLLocation) in print(location.altitude) , onCompleted: //TODO ) //TODO

【讨论】:

以上是关于如何从 CLLocationManager 更新创建 Observable的主要内容,如果未能解决你的问题,请参考以下文章

我多久可以从 CLLocationManager 获得更新?

CLLocationManager distanceFilter 是如何工作的?你不需要更新来知道手机在哪里吗?

CLLocationmanager 中的 GPS 位置更新

CLLocationManager 提供旧位置。如何获得新位置?

插值和预测 CLLocationManager

CLLocationManager 在后台停止