Что касается отображения текущего местоположения в виде аннотации, я сделал следующее:
// Set up the annotation
LocationAnnotation *annotation = [[LocationAnnotation alloc] initWithLatitude:[numberFormatter numberFromString:[[location valueForKey:@"latitude"] description]] andLongitude:[numberFormatter numberFromString:[[location valueForKey:@"longitude"] description]] andTitle:[location valueForKey:@"name"] andSubtitle:[location valueForKey:@"notes"]];
[numberFormatter release];
[self.mapView addAnnotation:annotation];
Класс заголовка аннотации выглядит следующим образом:
@interface LocationAnnotation : NSObject <MKAnnotation> {
UIImage *image;
NSNumber *latitude;
NSNumber *longitude;
NSString *locationTitle;
NSString *locationSubtitle;
}
@property (nonatomic, retain) UIImage *image;
@property (nonatomic, retain) NSNumber *latitude;
@property (nonatomic, retain) NSNumber *longitude;
@property(nonatomic,retain) NSString *locationTitle;
@property(nonatomic,retain) NSString *locationSubtitle;
-(id)initWithLatitude:(NSNumber *)aLatitude andLongitude:(NSNumber *)aLongitude andTitle:(NSString *)aLocationTitle andSubtitle:(NSString *)aLocationSubtitle;
@end
Метод addAnnotation
и MKAnnotation
Протокол - это то, что вам нужно для достижения этой цели.
Если вы хотите показывать пользовательские местоположения, вы не станете создавать свой собственный MKAnnotation
, как упомянуто здесь:
загрузка пользовательского изображения в mkmaps