नमूना एप्लिकेशन WorldCities दिखाता है कि आप किसी दिए गए स्थान में ज़ूम कर सकते हैं, लेकिन यह वहाँ एक पिन ड्रॉप नहीं है। कहा जाता है एक और नमूना एप्लिकेशन MapCallouts ड्रॉप पिन करता है, लेकिन यह ज़ूम नहीं है।
ज़ूम हिस्सा आसान है (WorldCities में didChooseWorldCity विधि देखें)।
पिन छोड़ने के लिए, आपको MapView को addAnnotation संदेश भेजने और यह एक उद्देश्य यह है कि MKAnnotation प्रोटोकॉल लागू करता है भेजने के लिए। तो सबसे पहले आप एक वर्ग है कि MKAnnotation लागू करता है बनाने के लिए की जरूरत है। यहाँ एक उदाहरण 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
अब आप animateToPlace विधि की शुरुआत में इस कोड को जोड़कर WorldCities नमूना संशोधित कर सकते हैं:
MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];
WorldCities अनुप्रयोग में worldCity.coordinate बस प्रकार CLLocationCoordinate2D जो दो क्षेत्रों में अक्षांश और देशांतर की संपत्ति है। दो तैरता वहाँ में जाना होगा।
नोट addAnnotation सिर्फ शहर में एक पिन डाल देंगे। एक एनिमेटेड छोड़ने पिन पाने के लिए आपको भी हां में viewForAnnotation विधि और animatesDrop सेट को लागू करने की है। MapCallouts में MapViewController.m में एक उदाहरण देखें। इसके अलावा जहां भी viewForAnnotation विधि कार्यान्वित किया जाता है के लिए MapView के प्रतिनिधि सेट (आम तौर पर स्वयं / फ़ाइल के स्वामी)।