猫猫学iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市
2017-07-07 19:11
429 查看
猫猫分享,必须精品
原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u013357243
1.获取用户输入的经纬度
2.依据用户输入的经纬度创建CLLocation对象
3.依据CLLocation对象获取相应的地标信息
地理编码:依据给定的地名。获得详细的位置信息(比方经纬度、地址的全称等)
反地理编码:依据给定的经纬度,获得详细的位置信息
这个block传递2个參数
error :当编码出错时(比方编码不出详细的信息)有值
placemarks :里面装着CLPlacemark对象
地理位置
区域
详细的地址信息
地址名称
城市
原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u013357243
一:效果
输入经纬度,能够得到相应的地名二:思路
跟地里编码差点儿相同1.获取用户输入的经纬度
2.依据用户输入的经纬度创建CLLocation对象
3.依据CLLocation对象获取相应的地标信息
三:代码
#import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController () /** * 地理编码对象 */ @property (nonatomic ,strong) CLGeocoder *geocoder; #pragma mark - 反地理编码 - (IBAction)reverseGeocode; @property (weak, nonatomic) IBOutlet UITextField *longtitudeField; @property (weak, nonatomic) IBOutlet UITextField *latitudeField; @property (weak, nonatomic) IBOutlet UILabel *reverseDetailAddressLabel; @end @implementation ViewController - (void)reverseGeocode { // 1.获取用户输入的经纬度 NSString *longtitude = self.longtitudeField.text; NSString *latitude = self.latitudeField.text; if (longtitude.length == 0 || longtitude == nil || latitude.length == 0 || latitude == nil) { NSLog(@"请输入经纬度"); return; } // 2.依据用户输入的经纬度创建CLLocation对象 CLLocation *location = [[CLLocation alloc] initWithLatitude:[latitude doubleValue] longitude:[longtitude doubleValue]]; // 3.依据CLLocation对象获取相应的地标信息 [self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { for (CLPlacemark *placemark in placemarks) { NSLog(@"%@ %@ %f %f", placemark.name, placemark.addressDictionary, placemark.location.coordinate.latitude, placemark.location.coordinate.longitude); self.reverseDetailAddressLabel.text = placemark.locality; } }]; } #pragma mark - 懒载入 - (CLGeocoder *)geocoder { if (!_geocoder) { _geocoder = [[CLGeocoder alloc] init]; } return _geocoder; } @end
四:知识扩充CLGeocoder
使用CLGeocoder能够完毕“地理编码”和“反地理编码”地理编码:依据给定的地名。获得详细的位置信息(比方经纬度、地址的全称等)
反地理编码:依据给定的经纬度,获得详细的位置信息
->地理编码方法
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
->反地理编码方法
- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler;
CLGeocodeCompletionHandler
当地理\反地理编码完毕时,就会调用CLGeocodeCompletionHandler typedef void (^CLGeocodeCompletionHandler)(NSArray *placemarks, NSError *error);
这个block传递2个參数
error :当编码出错时(比方编码不出详细的信息)有值
placemarks :里面装着CLPlacemark对象
CLPlacemark
CLPlacemark的字面意思是地标,封装详细的地址位置信息地理位置
@property (nonatomic, readonly) CLLocation *location;
区域
@property (nonatomic, readonly) CLRegion *region;
详细的地址信息
@property (nonatomic, readonly) NSDictionary *addressDictionary;
地址名称
@property (nonatomic, readonly) NSString *name;
城市
@property (nonatomic, readonly) NSString *locality;
结构图
相关文章推荐
- 猫猫学iOS 之CoreLocation地理编码小Demo输入城市得到经纬度
- 猫猫学iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市
- iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市
- AJ学IOS 之CoreLocation反地理编码小Demo输入经纬度得到城市
- AJ学IOS 之CoreLocation地理编码小Demo输入城市得到经纬度
- 【iOS】7.4 定位服务->2.1.3.2 定位 - 官方框架CoreLocation 功能2:地理编码和反地理编码
- iOS开发中使用CoreLocation框架处理地理编码的方法
- iOS地理反地理编码--CoreLocation
- IOS MapKit 输入城市名获取经纬度显示地图
- IOS反地理编码取得城市名称
- ios 定位经纬度获取位置信息,地理位置编码与反编码
- iOS利用CoreLocation获取地理位置以及如何在模拟器进行调试
- CoreLocation框架的基本使用 - 地理编码和反地理编码
- iOS利用CoreLocation获取地理位置以及如何在模拟器进行调试
- iOS - 使用CoreLocation获取当前所在城市
- iOS CoreLocation框架第三章—— CLGeocoder(地理编码器)和CLPlacemark(获取位置信息)
- 关于coreLocation - 地理位置反向编码
- Core Location Manager Changes in iOS 8(iOS8获取不到地理位置)
- iOS项目开发— CoreLocation的定位服务和地理编码与发编码实现
- ios 反地理编码,通过地址获得经纬度