Search code examples
iphoneobjective-ccocoacocoa-touchiphone-sdk-3.0

Hide, show annotation on MkMapView


How to hide annotation when zooming out the map view. I have a big number of annotation i have to hide them because if the region displayed on the map is too big you can see only the annotations.


Solution

  • To do this, you have to check the size of your region, and depending of it you set the views hidden or not.

    I tested the code bellow but, you will probably need to make some adjustments.

    
    - (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
    {
        NSArray *annotations = [_mapView annotations];  
        MyAnnotation *annotation = nil; 
        for (int i=0; i<[annotations count]; i++)
        {
            annotation = (MyAnnotation*)[annotations objectAtIndex:i];
            if (_mapView.region.span.latitudeDelta > .010)
            {
                [[_mapView viewForAnnotation:annotation] setHidden:YES];
            }
            else {
                [[_mapView viewForAnnotation:annotation] setHidden:NO];
            }
        }
    }