2016-10-17 4 views
0

В моем приложении я получаю широту и долготу вместе с некоторыми другими данными из запроса Parse. Однако добавляется только около 100 аннотаций, когда должно быть 156. Я проверяю в консоли, что он получает координаты для отсутствующих частей на карте, просто просто не добавляет к ним аннотацию. Мне что-то не хватает?iOS MapKit Аннотации не все Добавлено

-(void) viewWillAppear:(BOOL)animated { 
CLLocationCoordinate2D coord = {.latitude = 15.8700320, .longitude = 100.9925410}; 
MKCoordinateSpan span = {.latitudeDelta = 3, .longitudeDelta = 3}; 
MKCoordinateRegion region = {coord, span}; 
[mapViewUI setRegion:region]; 
PFQuery *query = [PFQuery queryWithClassName:@"Share"]; 
    [query setLimit:1000]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
if (!error) { 
self.mapViewData = objects; 
    NSLog(@"HOW MANY ARE THERE %lu", (unsigned long)[objects count]); 
for (int i=0;i<[objects count];i++) 
{ 
// Question * q = [[Question alloc]init]; 

PFObject * obj = [self.mapViewData objectAtIndex:i]; 
NSLog(@"%@", obj); 
self.theObject = obj; 

NSString *string = obj[@"WhereAt"]; 


NSArray *stringArray = [string componentsSeparatedByString: @","]; 

CLLocationDegrees myLatitude = [[stringArray objectAtIndex:0] doubleValue]; 
CLLocationDegrees myLongitude = [[stringArray objectAtIndex:1] doubleValue]; 
CLLocationCoordinate2D coord2 = {.latitude = myLatitude, .longitude = myLongitude}; 
    NSLog(@"LATITUDE %@", [stringArray objectAtIndex:0]); 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"MMM dd, yyyy"; 

MKPointAnnotation *annotation2 = [[MKPointAnnotation alloc] init]; 
[annotation2 setCoordinate:coord2]; 
[annotation2 setTitle:obj[@"FamilyName"]]; 
[annotation2 setSubtitle:obj[@"Result"]]; 

[mapViewUI addAnnotation:annotation2]; 


} 


} else { 
// Log details of the failure 
NSLog(@"Error: %@ %@", error, [error userInfo]); 
} 


}]; 
} 
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { 
    if (annotation == mapViewUI.userLocation) 
    { 
     return nil; 
    } 
    else 
    { 

    MKPinAnnotationView *annotationView = [[MKPinAnnotationView alloc] init]; 

    annotationView.enabled = YES; 
    annotationView.canShowCallout = YES; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    dateFormatter.dateFormat = @"MMM dd, yyyy"; 

    if ([annotation.subtitle isEqualToString:@"Accepted Bible"]) { 
     NSLog(@"Accepted"); 
     annotationView.pinTintColor = [UIColor greenColor]; 

    } 
    else if ([annotation.subtitle isEqualToString:@"Requested Different Material"]) { 
     NSLog(@"Different"); 

     annotationView.pinTintColor = [UIColor blackColor]; 

    } 
    else if ([annotation.subtitle isEqualToString:@"Not Home"]) { 
     NSLog(@"Not Home"); 

     annotationView.pinTintColor = [UIColor yellowColor]; 

    } 
    else if ([annotation.subtitle isEqualToString:@"Rejected Bible"]) { 
     NSLog(@"Rejected"); 

     annotationView.pinTintColor = [UIColor redColor]; 

    } 



    return annotationView; 
    } 

    return nil; 
} 

ответ

0

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

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(ClubPinAnnotation *)annotation { 

    MKAnnotationView *pinView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"MyPinIdentifier"]; 

    if (!pinView) { 
     pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"MyPinIdentifier"]; 
    } else {  
     pinView.annotation = annotation; 
    } 

    // Set up the pin view properties 

    return pinView; 
} 

Кроме того, убедитесь, что ваши латы/длинные позиции правильны , Отображение карты вызовет только запросы на вывод, которые ему действительно нужны для текущего представления, поэтому, если у вас есть некоторые, например, (0,0), они не будут отображаться до тех пор, пока вы не уменьшите масштаб, чтобы включить побережье Африки.

+0

Выполнение этого на самом деле усугубило ... ни один из цветов не является правильным, и все еще есть много отсутствующих аннотаций. –

Смежные вопросы