AJ学IOS 之CoreLocation地理编码小Demo输入城市得到经纬度
2015-11-29 00:44
621 查看
AJ分享,必须精品
二 :创建地理编码对象。
三 :利用地理编码对象编码,根据传入的地址获取该地址对应的经纬度信息。
四 :最后将他们分别显示出来就可以了。
一:效果
输入地名,可以得到相应的经纬度,知识为了学习写的小Demo二:实现步骤
一 :首先获取用户输入的位置。二 :创建地理编码对象。
三 :利用地理编码对象编码,根据传入的地址获取该地址对应的经纬度信息。
四 :最后将他们分别显示出来就可以了。
三:代码
CoreLocation使用步骤就不罗嗦了,因为没有涉及到获取用户隐私问题,所以不用授权,地里编码对象等等用到了很多词语还有一个[code]#import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController () #pragma mark - 地理编码 /** * 监听地理编码点击事件 */ - (IBAction)geocodeBtnClick; /** * 需要编码的地址容器 */ @property (weak, nonatomic) IBOutlet UITextField *addressField; /** * 经度容器 */ @property (weak, nonatomic) IBOutlet UILabel *longitudeLabel; /** * 纬度容器 */ @property (weak, nonatomic) IBOutlet UILabel *latitudeLabel; /** * 详情容器 */ @property (weak, nonatomic) IBOutlet UILabel *detailAddressLabel; /** * 地理编码对象 */ @property (nonatomic ,strong) CLGeocoder *geocoder; @end @implementation ViewController - (void)geocodeBtnClick { // 0.获取用户输入的位置 NSString *addressStr = self.addressField.text; if (addressStr == nil || addressStr.length == 0) { NSLog(@"请输入地址"); return; } // 1.创建地理编码对象 // 2.利用地理编码对象编码 // 根据传入的地址获取该地址对应的经纬度信息 [self.geocoder geocodeAddressString:addressStr completionHandler:^(NSArray *placemarks, NSError *error) { if (placemarks.count == 0 || error != nil) { return ; } // placemarks地标数组, 地标数组中存放着地标, 每一个地标包含了该位置的经纬度以及城市/区域/国家代码/邮编等等... // 获取数组中的第一个地标 CLPlacemark *placemark = [placemarks firstObject]; // for (CLPlacemark *placemark in placemarks) { // NSLog(@"%@ %@ %f %f", placemark.name, placemark.addressDictionary, placemark.location.coordinate.latitude, placemark.location.coordinate.longitude); self.latitudeLabel.text = [NSString stringWithFormat:@"%f", placemark.location.coordinate.latitude]; self.longitudeLabel.text = [NSString stringWithFormat:@"%f", placemark.location.coordinate.longitude]; NSArray *address = placemark.addressDictionary[@"FormattedAddressLines"]; NSMutableString *strM = [NSMutableString string]; for (NSString *str in address) { [strM appendString:str]; } self.detailAddressLabel.text = strM; // } }]; } - (CLGeocoder *)geocoder { if (!_geocoder) { _geocoder = [[CLGeocoder alloc] init]; } return _geocoder; } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { //隐藏键盘 [self.view endEditing:YES]; } @end
相关文章推荐
- AJ学IOS 之CoreLocation指南针小应用
- AJ学IOS 之CoreLocation基本使用
- AJ学IOS 之第一次打开Xcode_git配置,git简单学习
- AJ学IOS 之微博项目实战(8)用AFNetworking和SDWebImage简单加载微博数据
- AJ学IOS 之微博项目实战(6)导航控制器NavigationController 的滑动回退功能实现
- AJ学IOS 之微博项目实战(5)微博自定义搜索框searchBar
- AJ学IOS 之微博项目实战(4)微博自定义tabBar中间的添加按钮
- AJ学IOS 之小知识之_xcode插件的删除方法_自动提示图片插件KSImageNamed有时不灵_分类或宏之类不能自动提示,
- AJ学IOS 之小知识之xcode6自动提示图片插件 KSImageNamed的安装
- AJ学IOS 之小知识iOS启动动画_Launch Screen的运用
- AJ学IOS 之微博项目实战(2)微博主框架-自定义导航控制器NavigationController
- AJ学IOS 之微博项目实战(1)微博主框架-子控制器的添加
- AJ学IOS(46)之网易彩票幸运大转盘
- AJ学IOS(45)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。
- AJ学IOS(44)之网易彩票自定义图片在右边的Button_弹出view_ios6,7简单适配
- AJ学IOS(43)之网易彩票底部自定义TabBar实现切换
- iOS学习和开发的一些感触
- iOS开发>学无止境 - 沙盒和文件操作(汇总)
- iOS开发>学无止境 - NSFileManager文件操作的十个小功能
- iOS开发>学无止境 - 后台定位上传的代码实践