views:

195

answers:

0

I want to set the annotation to the all place of search result of google map. but i am getting the only single annotation at single point of search result.

- (IBAction) showAddress {
   [addressField resignFirstResponder];
   MKCoordinateRegion region;
   MKCoordinateSpan span;
   span.latitudeDelta=1;
   span.longitudeDelta=1;
   CLLocationCoordinate2D location =[self addressLocation];
   region.span=span;
   region.center=location;
   if(addAnnotation != nil) {
      [mapView removeAnnotation:addAnnotation];
      [addAnnotation release];
      addAnnotation = nil;
   }

   NSArray * annotations = [mapView annotations];
   [mapView removeAnnotations:annotations];
   addAnnotation = [[AddressAnnotation alloc] initWithCoordinate:location];    
   [mapView addAnnotation:addAnnotation];
   [addAnnotation release]; 
   [mapView setRegion:region animated:TRUE];
   [mapView regionThatFits:region];
}

-(CLLocationCoordinate2D) addressLocation {
   NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", 
   [addressField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
   NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];

   NSArray *listItems = [locationString componentsSeparatedByString:@","];
   double latitude = 0.0;
   double longitude = 0.0;

   if([listItems count] >=4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) {
      latitude = [[listItems objectAtIndex:2] doubleValue];
      longitude = [[listItems objectAtIndex:3] doubleValue];
   }
   else {
      //Show error
   }
   CLLocationCoordinate2D location;
   location.latitude = latitude;
   location.longitude = longitude;

   return location;
}

- (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;
   return pinView;

}