#pragma mark -- 添加地图定位
self.locationManager = [[CLLocationManager alloc] init];
//如果定位服务以打开
if ([CLLocationManager locationServicesEnabled]) {
self.locationManager.delegate = self;
//如果IOS大于8.0 弹出允许定位的提示
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
[self.locationManager requestWhenInUseAuthorization];
}
}
[self.locationManager setDesiredAccuracy:kCLLocationAccuracyBest];//设置定位精度
[self.locationManager setDistanceFilter:10];//每10米定位一次
[self.locationManager startUpdatingLocation];//启动定位跟踪
#pragma mark -- 协议方法,获得当前位置经纬度
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *location = [locations lastObject];
// CLLocation *location = [[CLLocation alloc]initWithLatitude:38.8 longitude:121.5];
CLLocationCoordinate2D coordinate = [location coordinate];
NSLog(@"纬度:%f,经度:%f",coordinate.latitude,coordinate.longitude);
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
#pragma mark -- 反地理编码确定位置;根据经纬度去确定地理位置
[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
if (placemarks.count == 0 || error) {
return ;
}
CLPlacemark *placeMark = [placemarks firstObject];
if ([placeMark locality]) {
#pragma mark -- 记录当前城市名
self.cityName = placeMark.locality;
}else {
self.cityName = placeMark.administrativeArea;
}
#pragma mark -- 记录地址,方便提取省份名
self.addressName = [placeMark.addressDictionary objectForKey:@"State"];
NSLog(@" %@ %@",self.cityName,self.addressName);
[self getAFNetWorkingData];//获取数据
}];
// NSLog(@"%@",self.cityName);
[manager stopUpdatingLocation];//关闭定位 费电
}