标签: clcircularregion

位置经理对20个区域的限制是否意味着20个地理围栏和信标区域?

恐怕我知道答案。

Apple的startMonitoringForRegion方法的位置管理器文档说,您一次最多可以监视20个区域。

我有一个客户端应用程序,大量使用了地理围栏区域和信标区域。

我假设地理围栏区域和信标区域分别有20个区域限制,但是我担心这两种类型的限制实际上总共是20个区域。

有人可以根据实际经验确认我的恐惧吗?

core-location ios ibeacon clcircularregion

4
推荐指数
1
解决办法
2852
查看次数

iOS 中的地理围栏限制

我对 iOS 中的地理围栏限制有疑问。

\n\n

我正在为烟店构建一个应用程序。地点加起来大约有200个。

\n\n

我想让用户在距离商店几英尺远时“自动”签到。

\n\n

Apple 施加的限制是 20。

\n\n

苹果文档

\n\n
\n

区域是依赖于特定硬件功能的共享资源。为了确保所有应用程序都能参与区域监控,Core Location 会阻止任何单个应用程序同时监控超过 20 个区域。要解决此限制,请仅监视靠近用户\xe2\x80\x99s 当前位置的区域。当用户移动时,根据用户\xe2\x80\x99 的新位置更新列表。

\n
\n\n

正如文档中所示,Apple 建议开发人员在用户更新其位置时更新 20 个区域的列表。

\n\n

在此输入图像描述

\n\n

我想到三个问题。

\n\n
    \n
  1. 文档称“Core Location 可防止任何单个应用程序同时监控 20 多个区域”。这是否意味着,作为开发人员,我可以在应用程序中设置区域的位置仅限于 20 个?因为我有 200 个地点(200 个客户希望在他们的商店周围拥有此功能)。

  2. \n
  3. Apple 提供了解决该限制的方法。这是否意味着 20 个区域限制仅适用于应用程序用户?这是否意味着我可以设置 200 个位置,但用户只能看到距离他们最近的 20 个可以签入的位置?

  4. \n
  5. 如果我有 10 个用户使用我的应用程序,并且他们的区域总数超过 20 个位置,会发生什么情况?

  6. \n
\n

core-location mapkit ios clcircularregion

4
推荐指数
1
解决办法
4974
查看次数

当用户在应用程序启动时位于区域时,Swift 4 locationManager didEnterRegion 不会触发

我正在尝试检测用户是否正在我的应用程序中输入特定区域。

如果应用程序启动然后进入该区域时用户不在特定区域,则此方法可以正常工作。

但是,如果应用程序启动时用户位于特定区域,则不会触发“didEnterRegion”函数。

这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()
    self.dbRef = Database.database().reference()
    self.mapView.delegate = self
    self.initLocationManager()
    guard let userLocation = locationManager.location?.coordinate else {return}
    self.userLocation = userLocation
    let region = MKCoordinateRegion(center: userLocation, latitudinalMeters: 1200, longitudinalMeters: 1200)
    mapView.setRegion(region, animated: true)
    self.getPlaces { (places) in
        self.places = places
        self.addAnnotationsToMap(places)
        if(CLLocationManager.authorizationStatus() == .authorizedAlways){
            if CLLocationManager.isMonitoringAvailable(for: CLCircularRegion.self){
                for place in places{
                    self.startMonitoring(place)
                }
            }
        }
    }
}

func startMonitoring(_ place: Place){
    let region = CLCircularRegion(center: place.getCoordinate(), radius: 50, identifier: place.identifier)
    region.notifyOnEntry = true
    region.notifyOnExit = …
Run Code Online (Sandbox Code Playgroud)

core-location cllocationmanager ios swift clcircularregion

3
推荐指数
1
解决办法
1262
查看次数

需要获得20多个区域监视通知

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

现在,有些情况下我需要为所有保存的位置提供监视,并且可能有数百个甚至更多。我在Apple论坛上读过很多文章,其中许多iOS设备仅允许20个区域监视。

在此处输入图片说明

我已经开发了我的代码以超出这种情况。我已经设置locationManager.distanceFilter = 200; 当我获得位置更新时。首先,我已停止所有区域监视,并按最近位置的条件停止运行,然后再次启动20个已保存位置的区域监视。

我认为上述解决方案可能会导致在停止并再次重新启动区域监视时丢失任何已保存的位置。因此,请提供给我其他更好的解决方案,以解决仅20条有关“区域监视”问题的通知。

祝你今天愉快 。!!..

cllocationmanager ios region-monitoring clcircularregion

2
推荐指数
1
解决办法
1492
查看次数