2014-06-26 11 views
0
- (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离开被监控区域时(它始终是用户手机周围的区域),它也会创建一个地图注释/引脚,从而标记最后一个已知位置。任何人都可以帮助或指引我正确的方向吗?有没有办法创建一个也可以用作地理围栏的iBeacon区域?

+0

您是否试图在手机上的地图上显示别针?如果是这样,这与iBeacons实际上没什么关系......你只需编写代码在电话的当前位置放置一个地图上的一个图钉。与iBeacons的唯一联系是您在离开该地区时触发此事。 – davidgyoung

回答

1

iBeacon实际上是一个地理围栏。您可以定义CLBeaconRegion,然后像使用CLCircularRegion一样监控区域进入/退出。与CLCircularRegion不同,CLBeaconRegion根据iBeacons UUID和可选的主要小数值定义。

您将收到您委托的didEnterRegiondidExitRegion方法的调用时iBeacon显示可见/不再可见 - 它在Location and Maps Programming Guide

说明你没有得到的灯塔的位置,但你可以捕捉到设备的GPS位置,当您将该地区作为上一次看到信标时的大致位置。一旦你有了,那么创建一个地图注记是微不足道的。

+0

啊,有道理。谢谢!! – user3561886

+0

我相信Apple已经在iOS 8的位置管理器中扩展了对iBeacons的支持,现在您可以将信标绑定到特定位置并根据信标创建位置更新。 (我的商业伙伴今年进入了WWDC,但我没有,而且我还没有参加那届会议。) –

相关问题