MKAnnotations делаются успешно, однако иногда они не отображаются на MKMapView - PullRequest
0 голосов
/ 06 мая 2010

Я работаю над приложением 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 Ответ

0 голосов
/ 14 мая 2010

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

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

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

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

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

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

...