2011-07-14 12 views
1

マップ上にユーザーの位置を表示してピンをドロップしたいのですが、私のアプリはある距離で2つのピンを分けてドロップします。新しいピンがドロップされたときに古いピンを削除する方法私のコードがあるマップ上の一つのピンのようになります。複数のピンを落とすマップビュー

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

    MKPinAnnotationView *pinView = nil; 


    if(annotation != mapView.userLocation) 
    { 



     static NSString *defaultPinID = @"com.invasivecode.pin"; 
     pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID]; 
     if (pinView == nil) pinView = [[[MKPinAnnotationView alloc] 
              initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease]; 



     pinView.pinColor = MKPinAnnotationColorGreen; 
     pinView.canShowCallout = YES; 
     pinView.animatesDrop = YES; 


     UILabel *label =[[UILabel alloc] initWithFrame:CGRectMake(0, -200, 300, 37)]; 

     [label setNumberOfLines:4]; 


     [label setFont:[UIFont boldSystemFontOfSize:10]]; 

     [label setText:[address objectAtIndex:0]]; 



     SportUpAppDelegate *appDelegate =[[UIApplication sharedApplication]delegate]; 



     appDelegate.currentLocation=[address objectAtIndex:0]; 


     [label setTextAlignment:UITextAlignmentLeft]; 
     [label setBackgroundColor:[UIColor clearColor]]; 
     [label setTextColor:[UIColor whiteColor]]; 


     [pinView setLeftCalloutAccessoryView:label]; 
     [label release]; 




    } 
    else { 
     [mapView.userLocation setTitle:@"I am here"]; 
    } 
    return pinView; 
} 

答えて

1

は、新しいピンを使用するときに、古いピン使用の削除annonationスーパー コールのロードマップから削除した後、この機能

[mapView removeAnnotations:mapView.annotations]; 
[mapView removeFromSuperview]; 

.... 再度使用

[self.view addSubview:mapView]; 

ここで、mapViewはmapViewの名前です

関連する問題