Вам необходимо создать цикл, который будет проверять, находится ли местоположение в пределах x миль от пользователя. Вот пример того, что я имею в виду, что я использовал в своем собственном коде
for (CLLocation *prox in locations) {
NSLog(@"prox %@", prox);
float distanceFromLocation = [mapView.userLocation.location distanceFromLocation:prox]/1609.344;
NSLog(@"distance %f", distanceFromLocation);
if (distanceFromLocation <= 10) {
NearbyLocation *nearbyLocation = [[NearbyLocation alloc]init];
NSString *key = [NSString stringWithFormat:@"%d", index];
nearbyLocation.title = [storedTitles objectForKey:key];
nearbyLocation.loction = prox;
nearbyLocation.subtitle = [NSString stringWithFormat:@"%.1f miles away", distanceFromLocation];
nearbyLocation.lat = prox.coordinate.latitude;
nearbyLocation.lon = prox.coordinate.longitude;
[newArray addObject:nearbyLocation];
[nearbyLocation release];
}
index++;
}
NSLog(@"new array %d prox %d", [newArray count], [proximityOutlet.nearbyLocations count]);
if ([newArray count] > [proximityOutlet.nearbyLocations count]) {
NSLog(@"set array");
// if the new array has actually added any objects, set the array and switch views;
proximityOutlet.nearbyLocations = newArray;
//[self.navigationController pushViewController:proximityOutlet animated:YES];
proximityOutlet.modalPresentationStyle = UIModalPresentationPageSheet;
proximityOutlet.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:proximityOutlet animated:YES];
}
[newArray release];
}
По сути, создайте цикл, который будет искать в массиве местоположений. иметь это
[mapView.userLocation.location distanceFrom: prox] /1609.334 // prox, представляющий экземпляр местоположения, которое проверяется, чтобы определить, находится ли пользователь в пределах x миль.
тогда скажи
if ([mapview.userLocation.location distanceFrom:prox]/1609.334 < (however many miles)){
annotationView = x;
}