iOS8 根據(jù)經(jīng)緯度顯示地名

字號(hào):


    我們很多時(shí)候做項(xiàng)目的時(shí)候都選用通過(guò)手機(jī)獲取定位,然后傳數(shù)據(jù)給后臺(tái),這是iOS8根據(jù)經(jīng)緯度顯示地名的demo
    //1.導(dǎo)入框架
    //
    // NearByViewController.m
    // nearDemo
    //
    // Created by apple on 14/12/5.
    // Copyright (c) 2014年 youdianshang. All rights reserved.
    //
    #import
    #import
    @interface NearByViewController ()
    {
    NSUserDefaults *defaluts;
    NSString * jingduStr;
    NSString *weiduStr;
    NSString *LocationAddress;
    }
    @property(nonatomic,retain)CLLocationManager *locationManager;
    @property(strong,nonatomic)UILabel *positionLabel;
    /*
    經(jīng)緯度相關(guān)設(shè)置
    */
    -(void)getLocationAll
    {
    self.locationManager = [[CLLocationManageralloc]init];
    _locationManager.delegate =self;
    _locationManager.desiredAccuracy =kCLLocationAccuracyBest;
    _locationManager.distanceFilter =10;
    [_locationManagerrequestAlwaysAuthorization];//添加這句
    [_locationManagerstartUpdatingLocation];
    }
    /*
    //通過(guò)經(jīng)緯度得到當(dāng)前地理位置
    -(void)change{
    defaluts=[NSUserDefaultsstandardUserDefaults];
    CLLocationCoordinate2D coordinate;
    coordinate.latitude = [[NSStringstringWithFormat:@"];
    coordinate.longitude = [[NSStringstringWithFormat:@"];
    CLLocation *newLocation=[[CLLocationalloc]initWithLatitude:coordinate.latitudelongitude: coordinate.longitude];
    CLGeocoder *geocoder=[[CLGeocoderalloc] init];
    [geocoder reverseGeocodeLocation:newLocationcompletionHandler:^(NSArray* placemarks,NSError* error)
    {
    MKPlacemark*placemark = [placemarks objectAtIndex:0];
    LocationAddress = [NSStringstringWithFormat:@"@", placemark.locality, placemark.subLocality,placemark.thoroughfare, placemark.subThoroughfare];
    [defaluts setObject:LocationAddress forKey:@"address"];
    NSLog(@"終極目標(biāo):1:%@2:%@3:%@4:%@", placemark.locality, placemark.subLocality,placemark.thoroughfare,placemark.subThoroughfare);
    }];
    #pragma mark--實(shí)現(xiàn)CLLocationManagerDelegate的代理方法,獲取地理位置(鑌)===========================================================================
    //(1)獲取到位置數(shù)據(jù),返回的是一個(gè)CLLocation的數(shù)組,一般使用其中的一個(gè)
    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
    {
    CLLocation *currLocation = [locations lastObject];
    NSLog(@"經(jīng)度=%f緯度=%f高度=%f", currLocation.coordinate.latitude, currLocation.coordinate.longitude, currLocation.altitude);
    jingduStr =[NSStringstringWithFormat:@"%f", currLocation.coordinate.latitude];
    weiduStr =[NSStringstringWithFormat:@"%f", currLocation.coordinate.longitude];
    NSLog(@"jijijijijij:%@",jingduStr);
    [self change];
    }
    //(2)獲取用戶位置數(shù)據(jù)失敗的回調(diào)方法,在此通知用戶
    - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
    {
    if ([error code] ==kCLErrorDenied)
    {
    //訪問被拒絕
    }
    if ([errorcode] == kCLErrorLocationUnknown) {
    //無(wú)法獲取位置信息
    }
    }