Monitoramento Geofence CLCircularRegion do iOS. locationManager: didExitRegion parece não funcionar conforme o esperado

Atualmente, estou tentando fazer com que meu aplicativo monitore regiões específicas usandoCoreLocation No entanto, estou achando que ele não parece funcionar conforme o esperado, parece-me que não pode funcionar com um pequeno raio pequeno definido para cada local, ou seja, 10m.

Também montei um pequeno aplicativo de teste que plota oraio do círculo em um mapa para que eu possa ver visualmente o que está acontecendo.

O código que estou usando para monitorar locais é o seguinte:

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;

// Set-up a region
CLLocationDegrees latitude = 52.64915;
CLLocationDegrees longitude = -1.1506367;
CLLocationCoordinate2D centerCoordinate = CLLocationCoordinate2DMake(latitude, longitude);

CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:centerCoordinate
                                                                 radius:10 // Metres
                                                             identifier:@"testLocation"];

[self.locationManager startMonitoringForRegion:region];

Eu não coloquei o código aqui paraDidEnter região etc, como eu sei que funciona quando me afasto mais de 100 m da região monitorada.

Aqui está uma captura de tela do aplicativo quando estou a mais de 10 metros da localização roxa no mapa, os eventos da região de saída não são acionados; no entanto, se eu alternar meulocalização paraLondres dispara e também quando eu definir o meulocalização de volta para onde o local azul está atualmente, ele também dispara.

Alguém sabe se existe alguma limitação com o raio mínimo da região ou talvez eu esteja fazendo algo errado.

Obrigado Aaron

questionAnswers(9)

yourAnswerToTheQuestion