2009-11-27 87 views

回答

4

你需要创建一个实现MKAnnotation协议委托:

@interface AnnotationDelegate : NSObject <MKAnnotation> { 
    CLLocationCoordinate2D coordinate; 
} 

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 

- (id) initWithCoordinate:(CLLocationCoordinate2D)coord; 

@end 

@implementation AnnotationDelegate 

@synthesize coordinate; 

- (id) initWithCoordinate:(CLLocationCoordinate2D)coord 
{ 
    coordinate.latitude = coord.latitude; 
    coordinate.longitude = coord.longitude; 
    return self; 
} 

@end 

对于每一个地图点,你需要实例化AnnotionDelegate对象之一(传入点的坐标),并把它添加到的MKMapView

AnnotationDelegate * annotationDelegate = [[[AnnotationDelegate alloc] initWithCoordinate:coordinate] autorelease]; 
[self._mapView addAnnotation:annotationDelegate]; 
0
if([points retainCount] > 0) 
    { 
    [points release]; 
    points = nil; 
    } 


    if([annotationAry retainCount] > 0) 
    { 
    [annotationAry release]; 
    annotationAry = nil; 
    } 
    points = [[NSMutableArray alloc]init]; 
    annotationAry = [[NSMutableArray alloc]init]; 
    for(int i=0;i<[longitudeary count];i++) 
    { 
    CLLocation* currentLocation1 = [[CLLocation alloc] initWithLatitude:[[latitudeary objectAtIndex:i]doubleValue] longitude:[[longitudeary objectAtIndex:i]doubleValue]]; 

    [points addObject:currentLocation1]; 
    } 


    for(int i=0;i<[points count];i++) 
    { 
    // CREATE THE ANNOTATIONS AND ADD THEM TO THE MAP 
    CSMapAnnotation* annotation = nil; 

    // create the start annotation and add it to the array 
     annotation = [[[CSMapAnnotation alloc] initWithCoordinate:[[points objectAtIndex:i] coordinate] 
          annotationType:CSMapAnnotationTypeImage 
           title:@"123456..." 
           shID:[shIDary objectAtIndex:i] 
           catID:[catIDary objectAtIndex:i] 
          ciggUse:[ciggaretteUSEary objectAtIndex:i] 
          wifiUse:[wifiUSEary objectAtIndex:i] 
          controller:self]autorelease]; 


    [annotationAry addObject:annotation]; 
    } 

    [mapViewmy addAnnotations:[NSArray arrayWithArray:annotationAry]]; 
1
NSString * urlString = nil; 
     urlString = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%@",12.58, 77.35, [NSString stringWithFormat:@"%@,%@,%@",[detailInfoDict valueForKey:@"address"],[detailInfoDict valueForKey:@"city"],[detailInfoDict valueForKey:@"state"]]]; 
     urlString = [urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString: urlString]] 
相关问题