mapview上的多个引脚未显示在iphone sdk的预期位置

时间:2012-03-29 13:14:20

标签: iphone objective-c annotations android-mapview

这里我遇到了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

1 个答案:

答案 0 :(得分:1)

你的注释类NPAnnotation需要实现MKAnnotation,对于这些,你需要有一个坐标属性。

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

你的副标题也需要被称为副标题。

来自苹果文档:

  

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

致以最诚挚的问候,希望对您有所帮助。

-

您还可以查看:How to show the annotations in a mapView