Les applications échantillons WorldCities montre comment vous pouvez zoomer sur un endroit donné , mais il ne laissez pas tomber une épingle là. Une autre exemple d' application appelé MapCallouts ne broches de chute , mais il n'a pas de zoomer.
La partie de zoom est facile (voir méthode didChooseWorldCity en WorldCities).
Pour déposer une épingle, vous devez envoyer le message AddAnnotation à l'MapView et l'envoyer un objet qui implémente le protocole MKAnnotation. Donc, vous devez d'abord créer une classe qui implémente MKAnnotation. Voici un exemple appelé MyMapPin:
//MyMapPin.h...
#import <MapKit/MapKit.h>
@interface MyMapPin : NSObject <MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString *subtitle;
NSString *title;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic,retain) NSString *subtitle;
@property (nonatomic,retain) NSString *title;
- (id) initWithCoords:(CLLocationCoordinate2D) coords;
@end
//MyMapPin.m...
#import "MapPin.h"
@implementation MyMapPin
@synthesize coordinate;
@synthesize subtitle;
@synthesize title;
- (id) initWithCoords:(CLLocationCoordinate2D) coords {
self = [super init];
if (self != nil) {
coordinate = coords;
}
return self;
}
- (void) dealloc
{
[title release];
[subtitle release];
[super dealloc];
}
@end
Maintenant, vous pouvez modifier l'échantillon de WorldCities en ajoutant ce code au début de la méthode animateToPlace:
MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];
worldCity.coordinate dans l'application WorldCities est juste une propriété de type CLLocationCoordinate2D qui a deux champs de latitude et la longitude. Les deux flotteurs iraient là-bas.
Notez que le AddAnnotation mettra juste une épingle à la ville. Pour obtenir une broche de chute d'animation, vous devez également mettre en œuvre la méthode viewForAnnotation et mettre animatesDrop YES. Voir un exemple dans MapViewController.m en MapCallouts. Définissez également le délégué du MapView à chaque fois que la méthode de viewForAnnotation est mis en œuvre (généralement auto / propriétaire du fichier).