CLGeocoder转发地理编码倍增位置

时间:2012-11-14 11:43:43

标签: ios ios6 mapkit clgeocoder

您正在使用此方法获取坐标并将一个图钉添加到地图视图中以获得一个邮政编码

-(void)myMapview
{
    //sitePC is an Array with the Post code location
    NSString *addressString = [self.sitePC valueForKey:@"sitePC"];

    CLGeocoder *geocoder = [[CLGeocoder alloc] init];

    [geocoder geocodeAddressString:addressString completionHandler:^(NSArray *placemarks, NSError *anError)

     { for(CLPlacemark *placemark in placemarks) {
             NSLog(@"Placemark: %@",placemark);

             MKPointAnnotation *pa = [[MKPointAnnotation alloc] init];

             pa.coordinate = placemark.location.coordinate;
             pa.title = [self.sitePC valueForKey:@"siteName"];
             [self.mapview addAnnotation:pa];

         }          if(anError)
         { NSLog(@"Error: %@",[anError description]); }         
     }];
}

但是现在sitePC数组要处理10个邮政编码,我读了CLGeocoder的文件,我知道我当时只能发送一个请求。

我的问题是,对于每个邮政编码,我当时只发送一个请求?

1 个答案:

答案 0 :(得分:1)

您可以为注释创建一个数组,并在MapView上添加该注释数组。希望以下代码更改可以帮助您。

NSString * addressString = [self.sitePC valueForKey:@“sitePC”];

CLGeocoder *geocoder = [[CLGeocoder alloc] init];

[geocoder geocodeAddressString:addressString completionHandler:^(NSArray *placemarks, NSError *anError)

 { 
    NSMutableArray *pointsArray = [[NSMutableArray alloc]init]
     for(CLPlacemark *placemark in placemarks) {
         NSLog(@"Placemark: %@",placemark);

         MKPointAnnotation *pa = [[MKPointAnnotation alloc] init];

         pa.coordinate = placemark.location.coordinate;
         pa.title = [self.sitePC valueForKey:@"siteName"];
         [pointsArray addObject:pa];
     }  
     [self.mapview addAnnotations:pointsArray];
  if(anError)
     { NSLog(@"Error: %@",[anError description]); }         
 }];