CoreLocation CLGeocoder 定位 反向地理編碼

{
    CLLocationManager       *_locationManager;
    CLGeocoder              *_geocoder;
}

@protocol

CLLocationManagerDelegate

PList

<key>NSLocationAlwaysUsageDescription</key>
    <string>定位請求</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>定位請求</string>
  _locationManager = [[CLLocationManager alloc]init];
    _geocoder = [[CLGeocoder alloc]init];
    if (![CLLocationManager locationServicesEnabled]) {
        NSLog(@"定位服務當前可能尚未打開,請設置打開!");
        return;
    }
    //如果沒有授權則請求用戶授權
    if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined){
        
        [_locationManager requestWhenInUseAuthorization];
        
    }else{
        //設置代理
        _locationManager.delegate = self;
        //設置定位精度
        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        //定位頻率,每隔多少米定位一次
        CLLocationDistance distance=10.0;//十米定位一次
        _locationManager.distanceFilter=distance;
        [_locationManager startUpdatingLocation];
    }


#pragma mark - CoreLocation
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    CLLocation *location=[locations firstObject];
    CLLocationCoordinate2D coordinate=location.coordinate;
    NSLog(@"經度:%f,緯度:%f,海拔:%f,航向:%f,行走速度:%f",coordinate.longitude,coordinate.latitude,location.altitude,location.course,location.speed);

    [_locationManager stopUpdatingLocation];
    //[self getAddressByLatitude:coordinate.latitude longitude:coordinate.longitude];
    // 反向地理編碼
    [_geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        
        CLPlacemark *placemark=[placemarks firstObject];
        NSLog(@"詳細信息:%@",placemark.addressDictionary);
        /*
        SubLocality = 東城區,
        CountryCode = CN,
        Street = 鼓樓外大街,
        State = 北京市,
        Name = 中國北京市東城區和平里街道鼓樓外大街,
        Thoroughfare = 鼓樓外大街,
        FormattedAddressLines = [
        中國北京市東城區和平里街道鼓樓外大街
        ],
        Country = 中國,
        City = 北京市
         */
        _positioningV.place = [placemark.addressDictionary objectForKey:@"State"];
    }];
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容