1. 在工程里面引入CoreLocation.framework和MapKit.framework。
2. 在.h文件里面加入如下代码:
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MKReverseGeocoder.h>
#import <MapKit/MKPlacemark.h>
@interface RootViewController : UICustomViewController<CLLocationManagerDelegate, MKReverseGeocoderDelegate> {
CLLocationManager *gps;
}
3. 在.m文件中加入以下代码:
- (void)locationManager:(CLLocationManager *)locationManager didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *) oldLocation;
{
self.location = [NSString stringWithFormat:@"%f,%f",newLocation.coordinate.latitude, newLocation.coordinate.longitude];
[self startedReverseGeoderWithLatitude:newLocation.coordinate.latitude longitude:newLocation.coordinate.longitude];
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
if ( [error code] == kCLErrorDenied ) {
[manager stopUpdatingHeading];
} else if ([error code] == kCLErrorHeadingFailure) {
}
}
-(void) startedReverseGeoderWithLatitude:(double)latitude longitude:(double)longitude{
CLLocationCoordinate2D coordinate2D;
coordinate2D.longitude = longitude;
coordinate2D.latitude = latitude;
MKReverseGeocoder *geoCoder = [[MKReverseGeocoder alloc] initWithCoordinate:coordinate2D];
geoCoder.delegate = self;
[geoCoder start];
}
-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
NSString *subthroung=placemark.thoroughfare;
NSString *local=placemark.locality;
self.textFieldName.text = [NSString stringWithFormat:@"您当前所在位置:%@,%@",local, subthroung];
}
-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
{
}
- (void)viewDidLoad {
[super viewDidLoad];
gps = [[CLLocationManager alloc] init];
gps.delegate = self;
gps.desiredAccuracy = kCLLocationAccuracyBest;
gps.distanceFilter = kCLDistanceFilterNone;
[gps startUpdatingLocation];
}
编译运行下就能看到结果了,哈哈~