2011-05-07 39 views

回答

2

我有有兩個對象緯度,經度字典的數組,我這樣做 -

if ([resultArray count]) 
     { 
      for (int i =0; i < [resultArray count]; i++) 
      { 
       NSDictionary *dict = [resultArray objectAtIndex:i]; 

       MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
       region.center.latitude = [[dict objectForKey:@"lat"] floatValue]; 
       region.center.longitude = [[dict objectForKey:@"long"] floatValue]; 
       region.span.longitudeDelta = 70.0f; 
       region.span.latitudeDelta = 70.0f; 

       MyAnnotations *ann = [[MyAnnotations alloc] init]; 
       ann.title = @"title"; 
       ann.coordinate = region.center; 
       [mapView addAnnotation:ann]; 
      } 
     } 

    // 
    // MyAnnotation.h 
    // 

    #import <Foundation/Foundation.h> 
    #import <MapKit/MapKit.h> 

    @interface MyAnnotation : NSObject <MKAnnotation> { 

     CLLocationCoordinate2D coordinate; 
     NSString *title; 
     NSString *subtitle; 

    } 
    @property (nonatomic, assign) CLLocationCoordinate2D coordinate; 
    @property (nonatomic, copy) NSString *title; 
    @property (nonatomic, copy) NSString *subtitle; 


    @end 


// 
// MyAnnotation.m 
// 

#import "MyAnnotation.h" 


@implementation MyAnnotation 
@synthesize coordinate,title,subtitle; 

-(void)dealloc 
{ 
    [title release]; 
    [subtitle release]; 
    [super dealloc]; 
} 

@end 

使用該委託標註 -

- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id)annotation 
{ 
    MKPinAnnotationView *pinView = nil; 

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

    UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
    [infoButton addTarget:self action:@selector(infoButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; 
    pinView.rightCalloutAccessoryView = infoButton; 
    [defaultPinID release]; 

    return pinView; 
} 
+0

這將在這個方法呢? - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id )註釋 – 2011-05-07 05:58:54

+0

No in viewDidLoad。 – saadnib 2011-05-07 06:00:36

+0

顯示未聲明的MyAnnotations。 – 2011-05-07 09:52:27