Примечания MKA делаются успешно, однако иногда они не отображаются на MKMapView

Я работаю над приложением iPhone с использованием 3.1.3 SDK, мое приложение находит текущее местоположение пользователей, отображает его в MKMapView, а затем находит близлежащие местоположения и отображает их как MKAnnotations. Мой код работает, но иногда соседние аннотации не отображаются на карте. Они все еще создаются, поскольку я вижу правильные данные в консоли (из NSLog, который запускается сразу после создания аннотаций).

Когда это терпит неудачу, совершенно случайно, это может быть 5-й раз, когда я нажимаю "Build and Run" за день, или 500-й, который, кажется, не имеет какого-либо паттерна и не выдает никаких типов ошибок, это просто не добавляет аннотации к MapView.

Этот метод вызывается для каждого соседнего местоположения, чтобы добавить MKAnnotation.

- (void)addPinsWithLocation:(NSDictionary *)spot
{
    CLLocationCoordinate2D location;
    location.longitude = [[spot objectForKey:@"spot_longitude"] doubleValue];
    location.latitude = [[spot objectForKey:@"spot_latitude"] doubleValue];

    PlaceMarks *placemark = [[PlaceMarks alloc] initWithCoordinate:location title:[spot objectForKey:@"spot_name"] subtitle:@""];
    NSLog(@"Adding Pin for Location: '%@' at %f, %f", [spot objectForKey:@"spot_name"], location.latitude, location.longitude);
    [mapView addAnnotation:placemark];
}

Любые идеи о том, как заставить MKAnnotations всегда показывать?

1 ответ

Решение

В настоящее время я делаю приложение, которое хочет показать все видимые аннотации - я бы попробовал установить делегат представления карты, а затем реализовать следующий метод:

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views

Здесь вы можете выяснить, какие аннотации были добавлены и, например, увеличить карту, чтобы показать их - этот блог дает вам некоторый исходный код, чтобы сделать это масштабирование для подгонки:

http://codisllc.com/blog/zoom-mkmapview-to-fit-annotations/

Вот несколько полезных советов по улучшению информации о вашем местоположении:

Оптимизация CLLocationManager/CoreLocation для более быстрого извлечения точек данных на iPhone

Другие вопросы по тегам