我有一个显示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错误6001.)”错误,所以我无法显示国家/地区名称。 稍微移动mapview可以解决问题,以便显示国家/地区。
每次用户更改地图视图显示时,如何确保能够显示国家/地区名称?
我已阅读that post,但这没有帮助。