【问题标题】:How does CLVisit work?CVisit 是如何工作的?
【发布时间】:2015-12-14 23:25:12
【问题描述】:

我正在开发一个应用程序,该应用程序严重依赖于监控可能在多个地区/地区的用户访问。我目前正在试验效果很好的区域监控,但是,位置回调并不像我想要的那样准确。我看过 CLVisit,但是那里的文档并没有很好地解释它,尤其是它的使用。

【问题讨论】:

标签: ios mapkit core-location region-monitoring


【解决方案1】:

我认为您误解了 CVisits 的概念。实际上没有需要创建的访问对象。 CLLocationManager 委托方法由苹果确定的算法触发(有关更多信息,请参阅wwdc lecture)。这在 CLLocationManager documentation...中进行了解释...

获取访问过的位置

在 iOS 中,访问服务为需要用户访问过的有趣地点的位置信息的应用提供了替代重要位置更改服务的方法。例如,如果用户在一个位置停留很长时间,则服务可能会在用户到达该位置时生成一个事件,而在用户离开该位置时生成另一个事件。该服务适用于可能已经在使用重要的位置更改服务并希望以更低功耗的方式执行此操作的应用程序。您不会使用此服务来创建导航应用程序或依赖定期位置更新的应用程序。

要开始传递访问相关事件,请将委托分配给位置管理器对象并调用其 startMonitoringVisits 方法。当位置管理器生成访问事件时,它将该信息传递给其委托的 locationManager:didVisit: 方法。交付给您的委托的事件数据仅包括您开始交付事件后发生的信息。换句话说,如果您在用户到达一个感兴趣的位置后开始传递事件,那么当用户离开该位置时系统传递的事件将不会反映实际到达时间。如果系统终止了您的应用,则此服务会在准备好交付新的访问事件时重新启动它。

也就是说,如果您查看NSHipster 的这篇文章,它引用了 CLVists 的一些当前问题(适用于 iOS 8.1)。它基本上继续说,如果您想要极其精确的基础设施,请不要使用 CLVisit。看起来你做得对(至少现在是这样)。

从 iOS 8.1 开始,CLVisit 并不是那么精确。虽然开始和结束时间是 通常在一两分钟内准确,线条在边缘处变得模糊 什么是访问,什么不是访问。躲进角落咖啡店一分钟 可能不会触发访问,但会在特别长的红绿灯处等待 可能。苹果很可能会提高访问检测的质量 未来的操作系统升级,但现在您可能希望推迟依赖 CVisit 支持您自己的访问检测,用于对您的数据至关重要的用例 尽可能准确。

【讨论】:

    猜你喜欢
    • 2014-11-23
    • 2014-08-12
    • 2017-07-24
    • 2016-11-13
    • 2017-10-11
    • 2021-10-13
    • 2011-02-24
    • 2013-11-16
    • 2011-10-16
    相关资源
    最近更新 更多