0

こんにちは、このメソッドを使用して座標を取得し、1 つの郵便番号のマップ ビューにピンを追加しています

-(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 つのリクエストしか送信できないことを知っています。

私の質問は、郵便番号ごとに一度に 1 つのリクエストのみを送信するにはどうすればよいですか?

4

1 に答える 1

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]); }         
 }];
于 2012-11-14T12:15:40.810 に答える