в моем приложении IOS Я реализую геообъектив. В текущей реализации я использую такой код:startMonitoringForRegion vs CLRegion: содержатьКоординат
CLRegion* region3 = [[CLRegion alloc] initCircularRegionWithCenter:coordinates radius:100 identifier:@"region3"];
[self.locationManager startMonitoringForRegion:region desiredAccuracy:kCLLocationAccuracyHundredMeters];
, а затем я использую эти методы делегата:
(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region{
NSLog(@"didenterregion");
}
(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region{
NSLog(@"didexitregion");
}
(void)locationManager:(CLLocationManager *)manager monitoringDidFailForRegion:(CLRegion *)region withError:(NSError *)error
{NSLog(@"monitoringDidFailForRegion");}
Однако, этот код работает отлично только радиус больше, чем в 100 метрах.
Вот некоторые вопросы:
- Apple, говорит, что в iOS6 и выше радиусе от 1 до 400 м поддерживается для устройств 4s и выше. Поскольку мне все равно, сколько времени потребуется для просмотра сообщения (например, я не хочу видеть сообщение при входе в регион, но мне все равно, если я когда-нибудь перейду из этого региона), я могу использовать меньший радиус? Меня интересует нечто вроде радиуса 50 м или меньше? (в некоторых регионах мне понадобится даже 20 м).
Я также считаю, что. Apple говорит, что можно поддержать до 20 регионов. Каковы преимущества/недостатки такого решения (я еще не реализовал его, но хочу ваше мнение).
псевдокод будет выглядеть так:
Declare the regions - save them in an array
Do not call start monitoring
А потом в методе делегата:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
for loop in all my regions {
if ([region containsCoordinate: newLocation.coordinate])
code for entering region
}
}
- Будет ли медленнее?
- Будет ли он потреблять больше батареи? (Я думаю, что мониторинг регионов не является потребляемой батареей)?
- Не может быть более точным?
- Могу ли я иметь более 20 регионов, так как я не регистрирую монитор?
Заранее спасибо.
heres решение http://stackoverflow.com/questions/22297995/add-more-than-20-regions-to-geofencing-ios/24080059#24080059 – uofc