在iPhone中使用地图视图读取当前位置名称

我读取当前位置的经度和纬度值,然后在iPhone中成功locking位置。 现在我想使用这个经度和纬度值来读取地名。

我用下面的代码来读取当前位置:

- (void)mapView:(MKMapView *)mapView1 didUpdateUserLocation:(MKUserLocation *)userLocation{ CLLocation *whereIAm = userLocation.location; NSLog(@"I'm at %@", whereIAm.description); latitude = whereIAm.coordinate.latitude; longitude = whereIAm.coordinate.longitude; NSLog(@"LAT : %f",latitude); NSLog(@"LONG : %f",longitude); mapView.mapType=MKMapTypeStandard; [mapView setMapType:MKMapTypeStandard]; [mapView setZoomEnabled:YES]; [mapView setScrollEnabled:YES]; MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } }; region.center.latitude =latitude; //22.569722 ; region.center.longitude = longitude; //88.369722; region.span.longitudeDelta = 0.01f; region.span.latitudeDelta = 0.01f; [mapView setRegion:region animated:YES]; [mapView setDelegate:self]; DisplayMap *ann = [[DisplayMap alloc] init]; ann.title = @" Welcome"; ann.subtitle = @"Hi"; ann.coordinate = region.center; [mapView addAnnotation:ann]; } - (void)viewDidLoad { [super viewDidLoad]; mapView.showsUserLocation = YES; mapView.delegate = self; } -(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation: (id<MKAnnotation>)annotation { MKPinAnnotationView *pinView = nil; if(annotation != mapView.userLocation) { static NSString *defaultPinID = @"com.invasivecode.pin"; pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID]; } [mapView.userLocation setTitle:@"I am here"]; return pinView; } 

像这样使用MKReverseGeocoderDelegate协议:

 @interface YourViewController : UIViewController <MKReverseGeocoderDelegate> { } @implementation YourViewController - (void)mapView:(MKMapView *)mapView1 didUpdateUserLocation:(MKUserLocation *)userLocation{ CLLocation *whereIAm = userLocation.location; MKReverseGeocoder *reverseGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate:whereIAm.coordinate]; reverseGeocoder.delegate = self; [reverseGeocoder start]; } 

现在实现下面的方法delegate来获取响应:

 - (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark { NSLog(@"I'm at %@", placemark.locality); } 

有关更多信息请参阅: http : //developer.apple.com/library/ios/#documentation/MapKit/Reference/MKReverseGeocoder_Class/