[英]multiple pins on mapview is not displayed in expected location in iphone sdk
在這里,我面臨在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中顯示注釋
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.