在我的应用程序中,目前我正在跟踪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];
// }
}