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];
- }
編譯運行下就能看到結果了,哈哈~