Het monster app WorldCities laat zien hoe je in een bepaalde locatie kunt inzoomen, maar het is niet een speld neer te zetten. Een ander monster app genaamd MapCallouts doet daling pinnen, maar het niet te zoomen.
De zoom-deel is makkelijk (zie didChooseWorldCity methode in WorldCities).
Een pen vallen, moet de addAnnotation boodschap aan de Mapview verzenden en versturen een object dat de MKAnnotation protocol implementeert. Dus eerst moet je een klasse die MKAnnotation implementeert creëren. Hier is een voorbeeld genoemd 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
Nu kon de WorldCities monster te wijzigen door het toevoegen van deze code aan het begin van de animateToPlace methode:
MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];
worldCity.coordinate in de WorldCities app is gewoon een eigenschap van het type CLLocationCoordinate2D die twee velden lengte-en breedtegraad. De twee drijvers zou naar binnen gaan.
Let op de addAnnotation zal gewoon een pin aan de stad. Om een geanimeerd dropping pin te krijgen, moet je ook de viewForAnnotation werkwijze en stel animatesDrop op JA te implementeren. Bekijk een voorbeeld in MapViewController.m in MapCallouts. Stel ook afgevaardigde van de Mapview's naar de plaats waar de viewForAnnotation methode wordt uitgevoerd (meestal zelf / Bestand van de eigenaar).