2013-03-18 50 views
0

我在这样的地图视图中添加多个标记选择注释,做多标记

markers = [jsonDict objectForKey:key]; 
      for (id k in markers) { 

       if ([k isEqualToString:@"latitude"]) { 

        mlat = [markers objectForKey:k]; 
        dlat = [mlat doubleValue]; 
       } 

       else if ([k isEqualToString:@"longitude"]) { 

        mlng = [markers objectForKey:k]; 
        dlng = [mlng doubleValue]; 
       } 


       else if ([k isEqualToString:@"file"]){ 
        murl = [markers objectForKey:k]; 
       } 

       else if ([k isEqualToString:@"comment"]){ 
        mcomment = [markers objectForKey:k]; 
       } 

      } 
      annotationCoord.latitude = dlat; 
      annotationCoord.longitude = dlng; 
      MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init]; 
      annotationPoint.coordinate = annotationCoord; 
      [self.navimap addAnnotation:annotationPoint]; 

现在,我想获得的“comment”和“file”的值在每个标记didSelectAnnotationView。如果有人帮我解决这个问题,我将不胜感激。

+0

嗨,通过继承MKAnnotationView类创建一个类。在里面创建一些属性值。这样您可以在点击任何引脚时使用代理方法进行访问。发布这是一个问题。在评论中,代码不能被添加。问候,阿伦 – Arun 2013-03-18 11:16:38

回答

0

您应该创建一个自定义注解类,并使用它,而不是MKPointAnnotation:

#import <MapKit/MapKit.h> 

@interface Marker : NSObject <MKAnnotation> 

@property (nonatomic, copy) NSString *title; 
@property (nonatomic, copy) NSString *subtitle; 
@property (nonatomic) CLLocationCoordinate2D coordinate; 
@property (nonatomic,copy) NSString* url; 
@property (nonatomic,copy) NSString* comment; 

@end 

你可以这样实现didSelectAnnotationView这样的:

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view 
{   
    if ([view.annotation isKindOfClass:[Marker class]]) { 
     Marker* marker = view.annotation; 
     NSLog(@"selected marker %@", marker); 
    } 
} 
+0

它完美的为我工作!非常感谢你,对于迟到的回应感到抱歉。 – user2181649 2013-03-21 08:41:48