2010-03-08 8 views

Répondre

2

Pour ajouter des annotations à MapKit vous devez mettre en œuvre un délégué Annotation qui met en œuvre le protocole MKAnnotation. Lorsque vous ajoutez l'annotation à la carte, créez une instance de votre objet Annotation Delegate, puis ajoutez-la au MKMapView. MKAnnotation comprend une position propriété que vous pouvez interroger pour déterminer l'emplacement de l'annotation:

@interface AnnotationDelegate : NSObject <MKAnnotation> { 
    CLLocationCoordinate2D coordinate; 
} 

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 

@end 

Pour ajouter votre annotation à la carte:

AnnotationDelegate * annotationDelegate = [[[AnnotationDelegate alloc] init] autorelease]; 
[mapView addAnnotation:annotationDelegate]; 

Puis, quand vous obtenez un calloutAccessoryControlTapped callback, vous pouvez convertir le MKAnnotationView .annotation en votre classe Annotation Delegate, puis interroger le positio n propriété:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 
{ 
    AnnotationDelegate * delegate = (AnnotationDelegate*)view.annotation; 
    // do stuff with delegate.position; 
} 
+0

merci j'ai résolu le problème –

+0

@ anmol-bajpai heureux de l'entendre. – RedBlueThing

+0

Si ma réponse était utile, n'hésitez pas à accepter/upvote;) – RedBlueThing