L'applicazione di esempio WorldCities mostra come è possibile eseguire lo zoom in un determinato luogo, ma non cade uno spillo lì. Un'altra applicazione di esempio denominato MapCallouts fa perni goccia, ma non zoomare.
La parte zoom è facile (vedi il metodo didChooseWorldCity in WorldCities).
Per eliminare una spina, è necessario inviare il messaggio AddAnnotation al mapview e inviarlo un oggetto che implementa il protocollo MKAnnotation. Quindi, prima è necessario creare una classe che implementa MKAnnotation. Ecco un esempio chiamato 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
Ora è possibile modificare l'esempio WorldCities aggiungendo questo codice all'inizio del metodo animateToPlace:
MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];
worldCity.coordinate in app WorldCities è solo una proprietà di tipo CLLocationCoordinate2D che ha due campi di latitudine e longitudine. I due galleggianti sarebbero andare in là.
Si noti l'AddAnnotation sarà solo mettere uno spillo alla città. Per ottenere un perno cadere animata, si hanno anche per implementare il metodo viewForAnnotation e impostare animatesDrop su YES. Vedere un esempio in MapViewController.m in MapCallouts. Impostare anche il delegato del mapview ovunque è implementato il metodo viewForAnnotation (di solito auto / proprietario del file).