【问题标题】:Remove CLBeaconRegion from monitoring depending on current location根据当前位置从监控中移除 CLBeaconRegion
【发布时间】:2015-05-17 19:39:14
【问题描述】:

所以我一直在寻找一种方法来从受监控区域中删除 BeaconRegion,具体取决于它与我当前位置的距离。 我虽然可以使用中心属性,但我认为我遗漏了一些东西......因为纬度/经度值无效......

po [region center]
(latitude = 0.0000000000000000000000000000000000000000000000000000000033891907065820605, longitude = 0.000000000000000000000000000000000000059293723668713039) 

如何根据 con currentLocation 删除 BeaconRegion?

【问题讨论】:

    标签: ios geolocation cllocationmanager ibeacon clbeaconregion


    【解决方案1】:

    是的,您可以根据用户的位置停止监视 CLBeaconRegions。 但正如您所发现的,此对象的 center 属性无法帮助您执行此操作(请参阅@Daij-Djan 对原因的解释。)

    您想要的典型做法是在设置信标监控的同时使用CLLocationManager 设置接收重大位置变化,如下所示:

    [locationManager startMonitoringSignificantLocationChanges];
    

    然后,您可以在 CLLocationManagerdelegate 中添加如下所示的方法,以便在用户每次显着更改位置时获取回调:

    - (void)locationManager:(CLLocationManager *)locationManager
          didUpdateLocations:(NSArray *)locations {
       CLLocation* location = [locations lastObject];
       NSLog(@"latitude %+.6f, longitude %+.6f\n",
              location.coordinate.latitude,
              location.coordinate.longitude);
       // TODO: change the monitored beacon regions depending on the
       // location.coordinate.latitude and location.coordinate.longitude     
       }
    }
    

    请注意,您还需要确保您的应用已授权定位服务以使其正常工作,并将与 NSLocationAlwaysUsageDescription 键对应的字符串放入您的 plist 中,但您需要进行相同的检查以监控反正信标:

    if([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
        [locationManager requestAlwaysAuthorization];
    }
    

    有关重大位置更改的更多详细信息,请参见此处:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html

    【讨论】:

      【解决方案2】:

      一个 CLBeaconRegion 代表 N 个具有相同 uuid 的蓝牙信标。 ibeacon 没有 GPS 坐标。它有一个 RSSI 值(信号强度)和一个“计算的”邻近属性,但没有位置。

      与 wifi 路由器相同;)有一些服务可以将信标/wifi 路由器与 GPS 位置相关联,但这不是标准的。信标应该怎么知道? :)


      在IOS上,CLBeaconRegion类只有一个center属性,因为它是CLRegion的子类

      如果您知道您所在地区的 GPS 位置,则使用该数据 + 您设备的位置

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-09
        • 1970-01-01
        • 2019-12-15
        • 1970-01-01
        • 1970-01-01
        • 2020-02-20
        相关资源
        最近更新 更多