2012-03-29 7 views
0

ここで、mapviewの時刻に複数のピンが表示されるという問題に直面しています。私はすべての異なる場所に表示ピンが一点で表示され、ここでそれmapviewの複数のピンがiphone sdkの予想される場所に表示されない

-(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; 

    } 

のための私のコードは、誰もが私が間違っているのはどこ助けてくださいである代わりに、別の場所値で10の注釈を持っています。すべての

おかげで、 Monish

+0

'coordinate'プロパティはNPAnnotation''に実装されている方法を示しています。また、 'subTitle'プロパティの名前は' subtitle'でなければなりません。 – Anna

答えて

1

あなたのアノテーションクラス、NPAnnotationは、MKAnnotationを実装する必要があり、これらのために、あなたは座標性質を持っている必要があります。

あなたは座標としてmarinaLocationを呼び出す必要があり、CLLocationCoordinate2Dである必要があります。

あなたのサブタイトルもサブタイトルと呼ばれる必要があります。

このプロトコルは座標 プロパティを実装する必要があります採用対象:アップルのドキュメントから

。このプロトコルの他の方法はオプションです。

よろしくお願いいたします。

-

また見てみることができます:How to show the annotations in a mapView

関連する問題