Как иметь несколько аннотаций на карте в зависимости от массива - PullRequest
0 голосов
/ 08 октября 2011

Приведенный ниже код - это то, что я использовал до сих пор, и он корректно просматривает все объекты в массиве, но когда я пытаюсь заставить их всех отображаться на одной карте, он добавляет только последний объект в массиве на карту,не все 20 или около того я хочу отобразить.

   self.clientTable = [ClientDatabase database].clientTable;

    ClientTable *info = nil;
    [_nameLabel setText:info.name];
    [_stateLabel setText:info.state];

    //change the string to doubles for the map GPS co-ordinates
    double latDouble = [info.latMap doubleValue];
    double longDouble = [info.longMap doubleValue];

    NSLog(@"%d",[self.clientTable count]);

    int countArray = [self.clientTable count];

    for (int i=0;i<countArray;i++) {

        info = [self.clientTable objectAtIndex:i];
        info.uniqueId=i;
        NSLog(@" i = %d ; id = %d %@",i, info.uniqueId, info.name);

        //set up the map
        [super viewDidLoad];
        [mapView setMapType:MKMapTypeStandard];
        [mapView setZoomEnabled:YES];
        [mapView setScrollEnabled:YES];
        MKCoordinateRegion region = {{0.0,0.0},{0.0,0.0}}; 

        region.center.latitude = latDouble;
        region.center.longitude = longDouble;
        region.span.longitudeDelta =0.02;  //degrees of acuracy, most precise best for this time
        region.span.latitudeDelta =0.02;   //degrees of accuracy

        [mapView setRegion:region animated:YES]; 

        // set up the annotation point

        AllMap *annotationPoint = [[AllMap alloc] init]; 
        annotationPoint.title = info.name;
        annotationPoint.subtitle = info.state; 
        annotationPoint.coordinate = region.center; 
        [mapView addAnnotation:annotationPoint];
        annotationPoint.isAccessibilityElement=YES;
        //show annotation by default
        [mapView selectAnnotation:annotationPoint animated:YES];  

        [mapView setDelegate:self];

    }

Извините, если код хлам, я новичок в программировании iPhone.

Заранее спасибо: D

Ответы [ 2 ]

1 голос
/ 08 октября 2011

Похоже, вы вызываете [super viewDidLoad] внутри цикла for, который, вероятно, сбрасывает массив аннотаций mapView.Этот метод следует вызывать только один раз, поэтому, если вы переместите его перед оператором for, вы можете получить лучшие результаты.

0 голосов
/ 08 октября 2011

Почему вы настраиваете карту внутри цикла, где вы создаете аннотации?

вот старая запись в блоге, но она охватывает основы и должна вернуть вас в нужное русло

...