Могу ли я создать MKAnnotation, или это только для чтения? У меня есть координаты, но я не найти его легко создать вручную MKAnnotationс помощью setCoordinate.
Идеи?
Могу ли я создать MKAnnotation, или это только для чтения? У меня есть координаты, но я не найти его легко создать вручную MKAnnotationс помощью setCoordinate.
Идеи?
MKAnnotation является протоколом. Таким образомвы должны написать свой собственный объект аннотацийкоторый реализует этот протокол. Таким образомваш заголовок MyAnnotation выглядит:
@interface MyAnnotation : NSObject<MKAnnotation> {
CLLocationCoordinate2D coordinate;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
// add an init method so you can set the coordinate property on startup
- (id) initWithCoordinate:(CLLocationCoordinate2D)coord;
и ваша реализация выглядит (MyAnnotation.m):
- (id) initWithCoordinate:(CLLocationCoordinate2D)coord
{
coordinate = coord;
return self;
}
Таким образом, чтобы добавить аннотацию к карте:
MyAnnotation * annotation = [[[MyAnnotation alloc] initWithCoordinate:coordinate] autorelease];
[self.mapView addAnnotation:annotation];
Если вы wan't заголовка и подзаголовка на аннотациях выноски, вам нужно добавить заголовок и свойство субтитров.
В iPhone OS 4 есть новый класс MKPointAnnotation который является конкретной реализацией протокола MKAnnotation.
Проверьте проект яблочных MapCallouts. Все , что вам нужно в этом файле: http://developer.apple.com/iphone/library/samplecode/MapCallouts/Introduction/Intro.html