Добавление выводов в MapView - PullRequest
0 голосов
/ 21 января 2012

Мне было интересно, как добавить булавки в MapView в приложении для iPhone. Я хочу, чтобы булавки были закреплены в местах, в названии которых есть слово «Чай», и было бы нецелесообразно размещать каждую булавку в каждом месте, содержащем это слово, поэтому мне было интересно, есть ли какой-нибудь способ сделать это так, чтобы, когда MapView загружен, контакты закреплены в этих местах. Я предполагаю, что это будет сделано с помощью Google Map API, однако я не уверен, как именно я это сделаю - кто-нибудь знает какие-либо учебные пособия, которые могли бы показать, как это реализовать.

Пока у меня есть простое представление, которое содержит MapView, а также соответствующий контроллер представления.

Заранее спасибо!

1 Ответ

1 голос
/ 21 января 2012

Вам нужно будет добавить экземпляры MKAnnotation в ваш MKMapView.

[mapView addAnnotation:annotation];

annotation - это экземпляр класса, соответствующий протоколу MKAnnotation.Прочитайте соответствующую документацию здесь:

http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapView_Class/MKMapView/MKMapView.html

http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKAnnotation_Protocol/Reference/Reference.html#//apple_ref/occ/intf/MKAnnotation

Пример кода:

@interface MyAnnotation: NSObject <MKAnnotation>
{
    CLLocationCoordinate2D coordinate;
    NSString *title;
}

@end

@implementation MyAnnotation

@synthesize coordinate, title;

- (id) init
{
    if ((self = [super init]))
    {
        coordinate.latitude = 0.0;
        coordinate.longitude = 0.0;
        title = NSLocalizedString(@"Tea");
    }
    return self;
}

@end

В вашем контроллере представления:

- (void) viewDidLoad
{
    [super viewDidLoad];
    // custom initialiation; create map view
    [self addPin]; // or with parameters, called multiple times, to add several annotations
}

- (void) addPin
{
    MyAnnotation *ann = [[MyAnnotation alloc] init];
    [mapView addAnnotation:ann];
    [ann release];
}

Надеюсь, это поможет.

...