iPhone - обратное геокодирование выдает ошибку «Операция не может быть завершена. (PBRequesterErrorDomain error 6001.)» - PullRequest
1 голос
/ 16 июля 2011

У меня есть простое приложение, которое показывает MapView.Когда пользователь прокручивает или меняет положение масштабирования на виде карты, я хочу отобразить название страны, которое находится в центре карты.

Итак, я делаю это:

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
    MKReverseGeocoder *reverseGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate:self.mapView.centerCoordinate];
    reverseGeocoder.delegate = self;
    [reverseGeocoder start];
}

- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated {
    self.countryNameLabel.text = @"";
}

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark {
    self.countryNameLabel.text = placemark.country;
}

- (void) reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error {
    self.countryNameLabel.text = [error localizedDescription];
    NSLog(@"%@", [error localizedDescription]);
}

Метод regionDidChangeAnimated вызывается только после завершения прокрутки представления, поэтому не более 1 вызова в секунду.

Иногда возникает ошибка «Операция не может быть завершена. (PBRequesterErrorDomain error 6001.)», поэтомуЯ не могу отобразить название страны.Немного переместив вид карты, можно решить проблему, чтобы отобразилась страна.

Как я могу гарантировать, что я смогу отображать название страны каждый раз, когда пользователь меняет отображение вида карты?

Я прочитал этот пост , но это не помогает.

1 Ответ

2 голосов
/ 17 июля 2011

Вы можете перехватить эту ошибку и попробовать другую службу геокодирования rev, например, Yahoo Placefinder , когда Google не сотрудничает.

...