mapview上的多个pin没有显示在iphonesdk中的预期位置



这里我面临着在mapview上同时显示多个引脚的问题。我有10个不同位置值的注释,而显示在不同位置的引脚都显示在一个点上,这是我的代码

-(IBAction)searchMarinaAction
{
    MarinasListviewController *controller = [[MarinasListviewController alloc]initWithNibName:@"MarinasListviewController" bundle:nil];
    UIPopoverController *popoverView = [[UIPopoverController alloc]initWithContentViewController:controller];
    [popoverView setDelegate:self];
    marinasList = [controller.marinasListArray copy];
    NSMutableArray *pinsArray = [[NSMutableArray alloc]init];
    NSLog(@"n marinas list count = %d",[marinasList count]);
    for(int i = 0; i < [marinasList count]; i++)
    {
        MarinaObject *obj = [marinasList objectAtIndex:i];
        NPAnnotation *annot = [[NPAnnotation alloc]init];
        annot.title = obj.marinaTitle;
        annot.subTitle = obj.marinaSubTitle;
        annot.marinaLocation = obj.marinaLocation;
        NSLog(@"n %d. %@ , %@, %f, %f ",i, annot.title,     annot.subTitle,annot.marinaLocation.latitude,annot.marinaLocation.longitude);
        [pinsArray addObject:annot];
        isFromSearchMarina = YES;
        [annot release];
    }
    [mkView addAnnotations:pinsArray];
}

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation{

    MKPinAnnotationView *pinView = (MKPinAnnotationView*)[mkView dequeueReusableAnnotationViewWithIdentifier:@"Prospects"];
    if(pinView == nil) {
        pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Prospects"];
        pinView.pinColor = MKPinAnnotationColorGreen;
        pinView.animatesDrop = YES;
        pinView.canShowCallout = YES;
    } else {
        pinView.annotation = annotation;
    }
    return pinView;
  }

有人能帮我做错事吗。

感谢大家,Monish

您的注释类NPAnnotation需要实现MKAnnotation,为此您需要有一个坐标属性。

你需要调用marinaLocation作为坐标,它需要是一个CLLocationCoordinate2D。

此外,您的子标题需要称为副标题。

来自苹果文档:

采用此协议的对象必须实现坐标所有物该协议的其他方法是可选的。

致以最良好的问候,并希望它能帮助你。

-

您还可以看看:如何在mapView 中显示注释

最新更新