2016-05-09 2 views
3
- (void)locationManager:(CLLocationManager *)manager 

    didUpdateLocations:(NSArray *)locations { 

    // If it's a relatively recent event, turn off updates to save power 
    NSLog(@"%@ locations",locations); 

    float Lat = _locationManager.location.coordinate.latitude; 
    float Long = _locationManager.location.coordinate.longitude; 

    NSLog(@"Lat : %f Long : %f",Lat,Long); 

    CLLocationCoordinate2D center = CLLocationCoordinate2DMake(28.52171,77.2015457); 

    NSLog(@"center check %@",center); 
    CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:center 
                   radius:500 
                  identifier:@"new region"]; 
    BOOL doesItContainMyPoint = [region containsCoordinate:CLLocationCoordinate2DMake(Lat,Long)]; 

    NSLog(@"success %hhd", doesItContainMyPoint); 

} 

речь идет, здесь им обеспечивает статическую область, для которой Im проверки (в центре) но требование, эта область будет принимать лат н долго гонщиков и гонщиков может варьироваться в количествеКак добавить геозонность региона для мониторинга.

I hv all lat n long в массиве словаря. Сначала водитель выберет первого всадника в списке, и в то время мне нужен регион всадника 1. я не получаю ни малейшего представления, как достичь этого

если я делаю как этот

for (NsMutableDictionary * dict in goersList) 
    { 
     rider_id=[dict valueForKey:@"trip_id"]; 
     lat=[dict valueForKey:@"origin_lat"]; 
     longi=[dict valueForKey:@"origin_long"]; 

} 

то, как он будет знать, что первая область должна контролироваться и просуществовав из этого диапазона я Нч проверить для второго местоположения

+0

Вам нужно добавить динамически регионы и мониторинга, что регионы, также необходимо удалить регионы во время выполнения. Пожалуйста, перейдите по [этой ссылке] (http://stackoverflow.com/questions/36807060/region-monitoring-method-getting-called-multiple-times-in-ge-fencing) –

ответ

3

Вы можете создавать динамически регионы и добавлять их к мониторингу.

for (NSDictionary *dict in [result valueForKey:@"Geofences"]) 
{ 
    NSLog(@"%@",dict); 
    CLLocationCoordinate2D locationCoordinate=CLLocationCoordinate2DMake([[dict valueForKey:@"cLatitude"]doubleValue], [[dict valueForKey:@"cLongitude"]doubleValue]); 

    CLCircularRegion *circularRegion=[[CLCircularRegion alloc]initWithCenter:locationCoordinate radius:[[dict valueForKey:@"Radius"]doubleValue] identifier:[dict valueForKey:@"Name"]]; 

    circularRegion.notifyOnEntry=YES; 
    circularRegion.notifyOnExit=YES; 
    [[AppDelegate sharedDelegate].locationManager startMonitoringForRegion:circularRegion]; 
    NSLog(@"%@",[[[AppDelegate sharedDelegate] locationManager].monitoredRegions description]); 
} 

Здесь для мониторинга добавлено несколько регионов. Вы можете добавить сингл за раз. т. е. при выборе таблицы.

и удалить другие, используя ниже код

for (CLRegion *monitored in [[AppDelegate sharedDelegate].locationManager monitoredRegions]) 
{ 
    [[AppDelegate sharedDelegate].locationManager stopMonitoringForRegion:monitored]; 
} 
+0

Что такое [result valueForKey: @ "Geofences "] здесь @Vatsal K –

+0

@ pooja_1205 Это массив, содержащий все геозоны. –

+0

Я видел ссылку u, упомянутую выше, даже мое требование почти такое же. Итак, эта задача завершена –

Смежные вопросы