创建多个地理围栏区域并跟踪它们?

时间:2015-01-03 05:21:23

标签: ios geofencing

在我的应用程序中,目前我正在跟踪1个CLCircularRegion,所以我的问题是如何同时跟踪多个区域。

我现在正在做的是:    我在didUpdateLocation中为该区域计算并且它正常工作,现在我担心的是,如果我对多个区域tahn进行计算,它将减慢我的应用程序,因此有更好的方法来跟踪多个地理围栏区域:< / p>

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    CLLocation *crnLoc = [locations lastObject];
    // NSLog(@"crnLoc is %@",crnLoc);



    NSLog(@"my Location Info is %@",locations);

        NSSet * monitoredRegions = locationManager.monitoredRegions;
        if(monitoredRegions)
        {



            [monitoredRegions enumerateObjectsUsingBlock:^(CLRegion *region,BOOL *stop)
             {
                 NSString *identifer = region.identifier;
                 CLLocationCoordinate2D centerCoords =region.center;
                 CLLocationCoordinate2D currentCoords= CLLocationCoordinate2DMake(crnLoc.coordinate.latitude,crnLoc.coordinate.longitude);
                 CLLocationDistance radius = 20.0;

                 NSNumber * currentLocationDistance =[self calculateDistanceInMetersBetweenCoord:currentCoords coord:centerCoords];
                 if([currentLocationDistance floatValue] < radius)
                 {
                     //NSLog(@"Invoking didEnterRegion Manually for region: %@",identifer);

                     //stop Monitoring Region temporarily
                    // [locationManager stopMonitoringForRegion:region];

                     [self locationManager:locationManager didEnterRegion:region];
                     //start Monitoing Region again.
                    // [locationManager startMonitoringForRegion:region];
                 }else{
                     [self locationManager:locationManager didExitRegion:region];
                 }
             }];

        //Stop Location Updation, we dont need it now.
        //[locationManager stopUpdatingLocation];

   // }

}

0 个答案:

没有答案