Örnek uygulaması WorldCities belirli bir konuma yakınlaştırma yapabilirsiniz ama orada bir raptiye gelmez gösterir. Denilen bir başka örnek uygulaması MapCallouts damla işaretçilerine yapar ama Büyütmek etmez.
yakınlaştırma kısmı (WorldCities içinde didChooseWorldCity yöntemine bakın) kolaydır.
raptiye için, MapView için addAnnotation mesaj gönder ve ona MKAnnotation protokolünü uygulayan bir nesne göndermek zorunda. Bunun için ilk önce MKAnnotation uygulayan bir sınıf oluşturmak gerekir. İşte MyMapPin denilen bir örnek:
//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
Şimdi animateToPlace yöntemin başında bu kodu ekleyerek WorldCities örnek değiştirebilir:
MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];
WorldCities uygulamasında worldCity.coordinate sadece iki alan enlem ve boylam vardır tipi CLLocationCoordinate2D bir özelliktir. İki yüzer oraya gider.
addAnnotation şehrin hemen bir iğne koymak unutmayın. animasyonlu bırakarak pimini almak için ayrıca YES viewForAnnotation yöntemi ve set animatesDrop uygulamak zorunda. MapCallouts içinde MapViewController.m bir örneğe bakın. Ayrıca viewForAnnotation yöntemi uygulanmaktadır her yere MapView en temsilci ayarlamak (genellikle kendiliğinden / dosya'nın sahibi).