需要获得超过20个地区监测通知

我正在开发一个应用程序,用户可以设置多个位置。 当用户进入或离开特定位置边界时,我会成功显示通知。

现在,我需要为所有已保存的位置提供监视,并且可能会有数百个和更多的情况。 我已经阅读了苹果论坛和许多iOS设备只允许20区域监测。

在这里输入图像说明

我已经开发了我的代码来超越这种情况。 我已经设置了locationManager.distanceFilter = 200; 当我得到更新的位置。 首先,我停止了所有区域监测,并根据最近位置的条件,再次启动20个保存位置的区域监测。

我认为上述解决scheme可能会导致在停止时丢失任何保存的位置,并再次重新启动区域监视。 所以,请给我提供任何其他更好的解决scheme来解决这个区域监测问题的20个通知。

祝你今天愉快 。!!..

  1. 有一个NSMutableArray与你要监控的所有地区+20。
  2. 收听重要的位置更新。
  3. 当你得到一个位置更新时,如果所有区域的NSMutableArray超过20,那么停止监视所有的区域被监视,并使用harvesine公式计算出20个最近的区域:

Harvesine – Objective C

Harvensine – Swift

这会给你两个地点之间的距离。 之后,您可以将该距离与区域半径进行比较,以确定是否在区域内。

注意:如果您的半径是米,那么这个距离将以公里为单位,然后将刚号方法结果乘以1000,以便将其转换为米。

  1. 开始监测20个最近区域的结果列表。

这将允许您始终根据您的位置监视最近的20个地区。 能够监视20多个,因为它将监视区域总是改变到最近的20个区域。