Iphone 需要CLGeocoder提供的坐标超过限制

Iphone 需要CLGeocoder提供的坐标超过限制,iphone,objective-c,mapkit,clgeocoder,Iphone,Objective C,Mapkit,Clgeocoder,以下代码仅返回前10个地址的坐标。但我需要100多个来存储在数据库中。地理编码器有限制吗?我怎么做 for(int i=0;i<count;i++) { CLGeocoder *geoCode = [[CLGeocoder alloc] init]; [geoCode geocodeAddressString:strcity completionHandler:^(NSArray *placemarks, NSError *error) {

以下代码仅返回前10个地址的坐标。但我需要100多个来存储在数据库中。地理编码器有限制吗?我怎么做

 for(int i=0;i<count;i++)
{

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

    [geoCode geocodeAddressString:strcity completionHandler:^(NSArray *placemarks, NSError *error)
     {
         if (!error)
         {
             CLPlacemark *place = [placemarks objectAtIndex:0];
             CLLocation *location = place.location;
             CLLocationCoordinate2D coord = location.coordinate;

             NSString *tempLati=[[NSString alloc]initWithFormat:@"%g",coord.latitude];
             NSString *tempLongi=[[NSString alloc]initWithFormat:@"%g",coord.longitude];




             [objCountries.countryLatitude addObject:tempLati];
             [objCountries.countryLongitude addObject:tempLongi];

             [geoCode cancelGeocode];
         }
     }];


}

用于(int i=0;iiOS会限制CLGeocoder请求,它会有所不同,但通常一次允许50个左右的请求。时间段是未知的。您可以做的是将其编码为一次对一个区块进行地理编码,在其间留有足够的停顿。只要可能,一旦读取,您应该存储结果,这样您就不会再次请求相同的地理代码。请注意这里有CLGeocoder文档:。如果Geocoder服务被滥用,苹果可以限制您甚至暂停您的开发者帐户。

好的。非常感谢。您知道如何设置geocode请求之间的延迟时间。是否有任何方法可以在geocode响应时调用?我认为使用NSTimer可能会很好-您可以使用repeat选项一次对一个数字进行地理编码,并在两个时间间隔很短,然后在对所有位置进行地理编码后使NSTimer无效。