【问题标题】:Number of "region" monitored by RegionMonitoring, based on users current location in iOS7RegionMonitoring 监控的“区域”数量,基于用户在 iOS7 中的当前位置
【发布时间】:2014-03-18 00:22:21
【问题描述】:

我正在从事这样一个项目,其中应用程序执行以下操作:

  1. 用户选择一个半径(10 米到 1000 米),然后按“Go”按钮转到下一个viewController
  2. 这里的应用程序抓取用户当前位置,并根据选定半径的当前位置开始“区域监控”
  3. 如果用户越过特定边界(10 米到 1000 米),则会发出“ExitRegion”警报消息。并根据用户新的当前位置再次启动“区域监控”。并且应用程序一直在这样做,无论是前台模式还是后台模式。我设法做到了,而且效果很好。

现在,我在这里监控一个区域,然后是另一个区域。所以这个数字实际上是一。但是我知道一个应用程序可以通过“区域监控”监控的最大区域数是 15。现在我的问题是在这种情况下我应该处理这个最大区域数问题吗?如果是,那么如何?

我还要补充一点,它有一些解决方案,仅适用于 iOS 6 及更早版本。所以请告诉我是否有一些解决方案可以根据用户在iOS7中的当前位置处理“RegionMonitoring”监控的“区域”数量。

如果有人能给出答案或任何建议来完成我的应用程序所需的要求,我将非常高兴。

【问题讨论】:

    标签: ios mapkit core-location geofencing region-monitoring


    【解决方案1】:

    如果您查看文档,最大限制为 20。当您超过此数字时,iOS 将释放对最旧区域的监控(认为它就像一个 FIFO 队列)。确保保持半径小于maximumRegionMonitoringDistance。所以换句话说你不需要担心最大限制,你可以通过实现didStartMonitoringForRegion:delegate来确保这一点。

    但是,如果您想控制自己监控的区域数量,您可以随时使用stopMonitoringForRegion: 停止监控区域您可以使用属性monitoredRegions 获取正在监控的区域列表。您可以随时清理不再需要的区域。最好将其保持在最低限度,因为它确实会影响电池和应用程序的性能。

    我正在使用以下代码在需要时清除我的所有区域。

    for (CLCircularRegion *region in self.locationManager.monitoredRegions) {
        [self.locationManager stopMonitoringForRegion:region];
    }
    

    但在您的情况下,我建议对区域标识符使用常量(例如“MY-REGION”),因为您无法监控具有相同标识符的两个区域,添加具有相同 ID 的另一个区域会自动删除以前监控的区域。

    CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:coordinate radius:50.0f identifier:@"MY-REGION"];
    [self.locationManager startMonitoringForRegion:region];
    

    【讨论】:

    • 感谢您的建议。我想在每一步中删除以前的监控区域。我的意思是,当用户退出一个区域时,它会删除前一个区域并根据用户当前位置开始另一个“区域监控”。我尝试使用这个:[locationManager stopMonitoringForRegion:[[[locationManager monitoredRegions] allObjects] objectAtIndex:0]]; 并在开始监视区域的开头调用它。但不能正常工作。你对此有什么想法吗? -谢谢
    • 我在 iOS8 iphone 5s 上做了一些测试。一旦达到 20 个区域,您将不再设置。旧地区不会被驱逐。此外,如果有人好奇(因为文档对此不明确),您可以设置 20 个 BeaconRegions 和 20 个 CircularRegions。
    猜你喜欢
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 2012-06-04
    • 2015-10-17
    相关资源
    最近更新 更多