iOS Geofence CLCircularRegion Überwachung. locationManager: didExitRegion scheint nicht wie erwartet zu funktionieren

Ich versuche derzeit, meine App dazu zu bringen, bestimmte Regionen mithilfe von zu überwachenCoreLocation Ich stelle jedoch fest, dass es nicht wie erwartet zu funktionieren scheint. Es scheint mir, dass es nicht mit einem kleinen Radius funktionieren kann, der für jeden Standort festgelegt ist, d. h. 10 m.

Ich habe auch eine kleine Test-App zusammengestellt, die das zeigtKreisradius Auf einer Karte kann ich also visuell sehen, was gerade passiert.

Der Code, den ich zum Überwachen von Standorten verwende, lautet wie folgt:

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];

Ich habe den Code hier für nicht gestelltDidEnter region etc wie ich weiß funktioniert das wenn ich über 100m weg von der überwachten region gehe.

Hier ist ein Screenshot der App, wenn ich weit über 10 Meter von der violetten Stelle auf der Karte entfernt bin. Die Ereignisse in der Ausgangsregion werden jedoch nicht ausgelöst, wenn ich meine umschalteStandort zuLondon es feuert und auch wenn ich mein setzeStandort Zurück zu dem Ort, an dem sich der blaue Ort befindet, wird auch gefeuert.

Weiß jemand, ob es eine Begrenzung mit dem minimalen Bereichsradius überhaupt gibt oder vielleicht mache ich etwas falsch.

Vielen Dank, Aaron

Antworten auf die Frage(9)

Ihre Antwort auf die Frage