Метод MKMapView
annotationsInMapRect:
даст вам набор аннотаций в данном прямоугольнике карты.
Чтобы получить те, которые в данный момент видны, передайте ему свойство visibleMapRect
вида карты.
Чтобы определить, какие аннотации видны после увеличения, уменьшения или панорамирования, вызовите этот метод в методе делегата regionDidChangeAnimated
:
-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
NSSet *annSet = [mapView annotationsInMapRect:mapView.visibleMapRect];
NSLog(@"regionDidChangeAnimated: annSet count = %d", annSet.count);
}