2014-02-16 4 views
0

Я изучаю использование мониторинга региона для своего приложения. В принципе, я хочу определить область круга, и если пользователь находится за пределами этого круга, приложение не будет работать.Регион Мониторинг только активен на границе креста?

Как я понимаю, мониторинг в регионе проверяет, не пересекает ли пользователь границу.

Если это так, может кто-нибудь указать мне в сторону учебника/blogpost, который может помочь мне достичь моей цели?

ответ

1

Мониторинг активен на обоих, если пользователь заходит на границе и выходит из границы

следующие методы полезны для проверки пользователь входит или выходит из конкретной определенной границы области Регион:

- (недействительный) locationManager: (CLLocationManager *) менеджер didEnterRegion: (CLRegion *) область {

NSLog(@"User Enters in Region"); 

}

- (Недействительными) locationManager: (CLLocationManager *) менеджер didExitRegion: (CLRegion *) область {

NSLog(@"User Goes out from Region"); 

}

+0

но контролирует только в/из деятельности –

0

вычислить расстояние от текущего местоположения до центра круга.
Если расстояние> радиус, то снаружи.

0

Вы можете использовать регионы для контроля за пользователем в/из деятельности, но обычно вы могли бы зарегистрируйтесь для Значительное изменение местоположения, а затем проверьте, находится ли местоположение пользователя на некотором ограниченном расстоянии от точки. Вы можете легко рассчитать расстояние между двумя точками CLLocation, позвонив по одному н, как это:

[myLoc distanceFromLocation:locationOfCenterOfCircle] 

и сравнить его с радиусом. Метод выше возвращает результат в метрах. В этом случае стоит прочитать this особенно о существенном изменении местоположения.

0

Вы можете выполнить requestStateForRegion:(CLRegion *) на CLLocationManager.

Таким образом будет запущен метод делегирования делегата: -(void) locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region.

Там вы можете проверить, находитесь ли вы в регионе или на улице. Итак, в основном, если у вас есть request the state где-то рядом с началом вашего приложения, вы можете определить, находится ли пользователь в вашем заграждении или за его пределами.

Это было бы сделать что-то вроде:

-(void) locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region{ 
if (state == CLRegionStateInside){ 
    // Inside geofence 
} else { 
    // Keep state disabled 
}