-(CLLocationManager *)man
{
if (_man == nil) {
_man = [[CLLocationManager alloc]init];
_man.delegate = self;//设置代理以便调用下面的方法,
_man.desiredAccuracy = kCLLocationAccuracyBest;
kCLLocationAccuracyNearestTenMeters,10米
kCLLocationAccuracyHundredMeters ,100米
kCLLocationAccuracyKilometer ,1000米
kCLLocationAccuracyThreeKilometers,3000米
kCLLocationAccuracyBest ,最好的精度
kCLLocationAccuracyBestForNavigation,导航情况下最好精度,iOS 4 SDK新增加。一般要有外接电源时候才能使用。
//distanceFilter,这个属性用来控制定位服务更新频率。单位是“米”。 desiredAccuracy,这个属性用来控制定位精度,精度
越高耗电量越大。
_man.distanceFilter = 1.0f;
//[_man startUpdatingLocation];
[_man requestWhenInUseAuthorization];
[_man requestAlwaysAuthorization];
}
return _man;
}
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
//事先是要开始定位的,我的写在了viewDidLoad中了,就不粘过来了
[_man stopUpdatingLocation];
CLGeocoder * geoCoder = [[CLGeocoder alloc] init];
[geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {
for (CLPlacemark * placemark in placemarks) {
NSDictionary *test = [placemark addressDictionary];
//详细地址信息字典,包含以下部分信息
// NSString *name=placemark.name;//地名
// NSString *thoroughfare=placemark.thoroughfare;//街道
// NSString *subThoroughfare=placemark.subThoroughfare; //街道相关信息,例如门牌等
// NSString *locality=placemark.locality; // 城市
// NSString *subLocality=placemark.subLocality; // 城市相关信息,例如标志性建筑
// NSString *administrativeArea=placemark.administrativeArea; // 州
// NSString *subAdministrativeArea=placemark.subAdministrativeArea; //其他行政区域信息
// NSString *postalCode=placemark.postalCode; //邮编
// NSString *ISOcountryCode=placemark.ISOcountryCode; //国家编码
// NSString *country=placemark.country; //国家
// NSString *inlandWater=placemark.inlandWater; //水源、湖泊
// NSString *ocean=placemark.ocean; // 海洋
// NSArray *areasOfInterest=placemark.areasOfInterest; //关联的或利益相关的地标
// Country(国家) State(城市) SubLocality(区) Name全称
// NSLog(@"%@", [test objectForKey:@"SubLocality"]);
//
// NSLog(@"%@", [test objectForKey:@"State"]);
NSMutableString *state = [test objectForKey:@"State"];
NSString *sublocal = [test objectForKey:@"SubLocality"];
NSString *total = [NSString stringWithFormat:@"%@%@",state,sublocal];
}
}];
}