ios - 有没有办法创建一个也可以作为地理围栏的 iBeacon 区域?

标签 ios objective-c ibeacon geofencing

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
//code for adjusting pins location when user re-enters its radius
}

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
//code for adding pin to map
}
- (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion        *)region
{

}

- (CLRegion*)dictToRegion:(NSDictionary*)dictionary
{
NSString *identifier = [dictionary valueForKey:@"identifier"];
CLLocationDegrees latitude = [[dictionary valueForKey:@"latitude"] doubleValue];
CLLocationDegrees longitude =[[dictionary valueForKey:@"longitude"] doubleValue];
CLLocationCoordinate2D centerCoordinate = CLLocationCoordinate2DMake(latitude, longitude);
CLLocationDistance regionRadius = [[dictionary valueForKey:@"radius"] doubleValue];

if(regionRadius >_locationManager.maximumRegionMonitoringDistance)
{
    regionRadius =_locationManager.maximumRegionMonitoringDistance;
}

NSString *version = [[UIDevice currentDevice] systemVersion];
CLRegion * region =nil;

if([version floatValue] >= 7.0f) //for iOS7
{
    region =  [[CLCircularRegion alloc] initWithCenter:centerCoordinate
                                                radius:regionRadius
                                            identifier:identifier];
}
else // iOS 7 below
{
    region = [[CLRegion alloc] initCircularRegionWithCenter:centerCoordinate
                                                     radius:regionRadius
                                                 identifier:identifier];
}
return  region;
}

所以我试图做到这一点,以便当 iBeacon 离开被监控区域(始终是用户手机周围的区域)时,它还会创建 map 注释/图钉,从而标记其最后已知位置。谁能帮助我或指出正确的方向?

最佳答案

iBeacon 实际上是一个地理围栏。您定义一个 CLBeaconRegion,然后像使用 CLCircularRegion 一样监视区域进入/退出。与 CLCircularRegion 不同,CLBeaconRegion 是根据 iBeacons UUID 及其可选的 majorminor 定义的 值(value)观。

当 iBeacon 可见/不再可见时,您将收到对委托(delegate)的 didEnterRegiondidExitRegion 方法的调用 - 这在 Location and Maps Programming Guide 中有描述

您无法获取信标的位置,但您可以在离开该区域时捕获设备的 GPS 位置,作为最后一次看到信标的大致位置。完成后,创建 map 注释就很简单了。

关于ios - 有没有办法创建一个也可以作为地理围栏的 iBeacon 区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440672/

相关文章:

objective-c - 以编程方式设置 Mac 鼠标/触控板速度

ios - 即使信标关闭,didRangeBeacons 也会被调用

ios 旋转器在停止命令后不停止

iphone - 我想跟踪谁通过 ios 访问网站的电话号码

ios - Swift 返回错误 'Binary operator == cannot be applied to two EKSourceType operands'

ios - 应用未运行时的 iBeacon 通知

ios - CLBeacons 处于应用挂起状态

ios - 如何使用 AFNetworking 下载文件并将其保存到文档目录?

ios - 在 IOS 9 中合并音频文件时 AVAssetExportSessionStatusFailed

iphone - 自动旋转从 UIWebView 播放的视频到横向模式