iphone定位城市

#import <CoreLocation/CLLocation.h>
#import <CoreLocation/CLLocationManager.h>
#import <MapKit/MKReverseGeocoder.h>
#import <MapKit/MKPlacemark.h>



#pragma mark CLLocationManager delegate
//定位成功调用
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"定位成功!");
    CLLocationCoordinate2D loc = [newLocation coordinate];

    NSLog(@"%f",loc.latitude);
    NSLog(@"%f",loc.longitude);

    MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc]initWithCoordinate:newLocation.coordinate];
    geocoder.delegate = self;
    //启动gecoder
    [geocoder start];
}

//定位出错时被调
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    NSLog(@"获取经纬度失败,失败原因:%@", [error description]);
}

#pragma mark MKReverseGeocoderDelegate
//反向定位城市成功
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
    NSLog(@"定位城市成功,城市是: %@", placemark.locality);
}

//反向定位城市失败
-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder
      didFailWithError:(NSError *)error
{
    NSLog(@"定位城市失败,失败原因 : %@", [error description]);
}


- (void) startLocation

{
    if (![CLLocationManager locationServicesEnabled] || [CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied)
    {
        NSLog(@"您关闭了的定位功能,将无法收到位置信息,建议您到系统设置打开定位功能!");
    }
    else
    {
        CLLocationManager *myLocationManager = [[CLLocationManager alloc]init];
        myLocationManager.delegate = self;
        //        NSLog(@"PURPOSE = %@",self.myLocationManager.purpose);
        //选择定位的方式为最优的状态,他又四种方式在文档中能查到
        myLocationManager.desiredAccuracy=kCLLocationAccuracyBest;
        //发生事件的最小距离间隔
        myLocationManager.distanceFilter = 1000.0f;
        [myLocationManager startUpdatingLocation];
        
    }
}
#pragma mark CLLocationManager delegate
//定位成功调用
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"定位成功!");
    CLLocationCoordinate2D loc = [newLocation coordinate];

    NSLog(@"%f",loc.latitude);
    NSLog(@"%f",loc.longitude);

    MKReverseGeocoder *geocoder = [[MKReverseGeocoder alloc]initWithCoordinate:newLocation.coordinate];
    geocoder.delegate = self;
    //启动gecoder
    [geocoder start];
}

//定位出错时被调
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    NSLog(@"获取经纬度失败,失败原因:%@", [error description]);
}

#pragma mark MKReverseGeocoderDelegate
//反向定位城市成功
- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
    NSLog(@"定位城市成功,城市是: %@", placemark.locality);
}

//反向定位城市失败
-(void)reverseGeocoder:(MKReverseGeocoder *)geocoder
      didFailWithError:(NSError *)error
{
    NSLog(@"定位城市失败,失败原因 : %@", [error description]);
}

你可能感兴趣的:(manager,iPhone,文档,import,CLLocation)