В настоящее время я пытаюсь настроить свое приложение на мониторинг определенных регионов с помощью CoreLocation
, однако я считаю, что он работает не так, как ожидалось, мне кажется, что он не может работать с небольшим радиусом, установленным для каждого местоположения т.е. 10 м.
Я также собрал небольшое тестовое приложение, которое отображает радиус круга на карте, чтобы я мог визуально видеть, что происходит.
Код, который я использую для отслеживания местоположений, выглядит следующим образом:
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];
Я не поставил здесь код для области DidEnter
и т.д., как я знаю, это работает, когда я перехожу на 100 м от контролируемого региона.
Вот скриншот приложения, когда я нахожусь на расстоянии более 10 метров от фиолетового местоположения на карте, события на выездной зоне не срабатывают, однако, если я переключу свое местоположение на Лондон он срабатывает, а также когда я устанавливаю свое местоположение обратно туда, где синее место в настоящее время также срабатывает.
Кто-нибудь знает, есть ли ограничение с минимальным радиусом зоны вообще или, возможно, я что-то делаю неправильно.
Спасибо Аарон