App ukázkové WorldCities ukazuje, jak můžete přiblížit na daném místě, ale neklesl špendlík tam. Další příklad aplikace s názvem MapCallouts dělá předčasného kolíky, ale to není zoom.
Součástí zoom je snadné (viz metoda didChooseWorldCity v WorldCities).
Chcete-li umístit špendlík, musíte poslat addAnnotation zprávu MapView a odeslat ji objekt, který implementuje protokol MKAnnotation. Takže nejprve je třeba vytvořit třídu, která implementuje MKAnnotation. Zde je příklad s názvem 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
Nyní můžete upravit ukázkové WorldCities přidáním tento kód na začátku způsobu animateToPlace:
MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];
worldCity.coordinate v aplikaci WorldCities je jen vlastnost typu CLLocationCoordinate2D který má dvě pole zeměpisné šířky a délky. Tyto dva plováky by tam jít.
Všimněte si addAnnotation bude jen dát kolík na město. Chcete-li získat animovaný zahazování pin, musíte také implementovat metodu viewForAnnotation a nastavit animatesDrop na YES. Podívejte se na příklad v MapViewController.m v MapCallouts. Také nastaven delegovat MapView, aby všude tam, kde je implementován způsob viewForAnnotation (obvykle spontánně / soubor Majitel).