Nubaslon Nubaslon - 10 months ago 60
iOS Question

How to count number and which annotations shown on MapView, when zooming?

I need to count number of annotations when i zooming mapView, and get array with which are shown on map,
and then, i need to reload my Table and show list of only which shown on map.

How can i get number and array with annotation?

Answer Source

How about these two methods from MapKit class:

1) Get visible rectangle of map using:

@property(nonatomic, readonly) CGRect annotationVisibleRect

2) Then get annotation NSSet from parameter map rectangle:

- (NSSet *)annotationsInMapRect:(MKMapRect)mapRect

So I would expect something like this:

    NSSet *annotationSet = [myMapView annotationsInMapRect:myMapView.annotationVisibleRect];

    // print number of annotations
    NSLog(@"Number of annotations in rect: %d", annotationSet.count);

    // this will return an array from the NSSet
    NSArray *annotationArray = [annotationSet allObjects]; 

Does that help?