views:

781

answers:

1

I want to open up the callout for an MKPinAnnotationView programmatically. Eg I drop 10 pins on the map, and want to open up the one closest to me. How would I go about doing this?

Apple has specified the 'selected' parameter for MKAnnotationView's, but discourages setting it directly (this doesn't work, tried it).

For the rest MKAnnotationView only has a setHighlighted (same story), and canShowCallout method..

Any hints if this is possible at all?

+4  A: 

In your mapViewController create an action method:

- (void)openAnnotation:(id)annotation;
{
    //mv is the mapView
    [mv selectAnnotation:annotation animated:YES];

}

You can then determine the closest annotation based on current location and walking the annotations available in the

[mv annotation]

array. Once the closest annotation is calculated, call:

[self openAnnotation:closestAnnotation];

The mapView should scroll automatically to place your annotation in the center of the display area.

Chip Coons