iOS获取地理位置,根据经纬度获取省市街道
2016-09-06 11:10
183 查看
获取地理位置
首先要在工程的info.plist里面添加key和value。value是你请求位置提示用户的信息,如下图。当然也可以不填。NSLocationAlwaysUsageDescription //应用一直可以访问地理位置
NSLocationWhenInUseUsageDescription //应用在使用时访问地理位置
在使用的类里面添加头文件,并且实现CLLocationManagerDelegate代理方法,创建位置管理者locationManager
#import "ViewController.h" //获取位置 #import <CoreLocation/CoreLocation.h> @interface ViewController ()<CLLocationManagerDelegate> @property (nonatomic,strong) CLLocationManager *locationManager; @end
实例化位置管理者
- (void)createLocationManager{ self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; // [self.locationManager requestAlwaysAuthorization]; [self.locationManager requestWhenInUseAuthorization];//获取访问权限。可以在info.plist里面填写给用户的请求信息 // 设置定位精度 // kCLLocationAccuracyNearestTenMeters:精度10米 // kCLLocationAccuracyHundredMeters:精度100 米 // kCLLocationAccuracyKilometer:精度1000 米 // kCLLocationAccuracyThreeKilometers:精度3000米 // kCLLocationAccuracyBest:设备使用电池供电时候最高的精度 // kCLLocationAccuracyBestForNavigation:导航情况下最高精度,一般要有外接电源时才能使用 self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; // distanceFilter是距离过滤器,为了减少对定位装置的轮询次数,位置的改变不会每次都去通知委托,而是在移动了足够的距离时才通知委托程序 self.locationManager.distanceFilter = kCLDistanceFilterNone; // 如果设为kCLDistanceFilterNone,则每秒更新一次; }
开始定位,结束定位
[self.locationManager startUpdatingLocation];//开始定位 [self.locationManager stopUpdatingLocation];//结束定位
定位的代理方法,以及根据经纬度计算所在的省市区街道等信息
#pragma mark - CLLocationManagerDelegate // 地理位置发生改变时触发 - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { // 获取经纬度 NSLog(@"纬度:%f",newLocation.coordinate.latitude); NSLog(@"经度:%f",newLocation.coordinate.longitude); // 停止位置更新 [manager stopUpdatingLocation]; //根据经纬度获取省份城市 CLGeocoder *clGeoCoder = [[CLGeocoder alloc] init]; [clGeoCoder reverseGeocodeLocation:newLocation completionHandler: ^(NSArray *placemarks,NSError *error) { for (CLPlacemark *placeMark in placemarks) { NSDictionary *addressDic=placeMark.addressDictionary;//地址的所有信息 NSString *state=[addressDic objectForKey:@"State"];//省。直辖市 江西省 NSString *city=[addressDic objectForKey:@"City"];//市 丰城市 NSString *subLocality=[addressDic objectForKey:@"SubLocality"];//区 // NSString *street=[addressDic objectForKey:@"Street"];//街道 NSLog(@"%@=====%@-----%@=====%@",addressDic,state,city,subLocality); } }]; } // 定位失误时触发 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSLog(@"error:%@----%ld",error,(long)[error code]); if ([error code] == 1) { //没有位置访问权限 } }
相关文章推荐
- java调用百度地图API根据地理位置中文获取经纬度
- iOS根据输入的位置获取经纬度
- java调用百度地图API根据地理位置中文获取经纬度
- 根据经纬度来获取地理位置信息demo
- 转载]IOS LBS功能详解[0](获取经纬度)[1](获取当前地理位置文本 )
- java根据GPS(经纬度)获取地理位置
- 【Java】 java调用百度地图API根据地理位置中文获取经纬度 地址备忘
- 根据经纬度来获取地理位置信息demo
- 百度地图_根据地图上标记位置获取街道信息,以及经纬度信息
- iOS开发——定位获取经纬度坐标,并反编码获得地理位置信息(具体地址,国家、省、市等)
- 根据经纬度获取地理位置名称省、市等信息
- 百度地图_根据地图上标记位置获取街道信息,以及经纬度信息
- CLGeocoder 根据地理位置获取经纬度,根据经纬度获取地理位置
- iOS定位获取当前所在经纬度,进而获得具体地址(省市地区街道)
- 关于51地图中循环根据经纬度获取地理位置只显示一条数据的问题
- Google Map 根据经纬度获取当前具体街道位置
- iOS定位获取当前所在经纬度,进而获得具体地址(省市地区街道)
- 根据GPS获得的经纬度来获取地理位置信息
- ios 定位经纬度获取位置信息,地理位置编码与反编码
- java调用百度地图API根据地理位置获取经纬度