前言

	NS_CLASS_AVAILABLE(10_8, 5_0)
@interface CLGeocoder : NSObject
  • 地理编码

    • 地名 -> 经纬度 等具体位置数据信息。根据给定的位置(通常是地名)确定地理坐标(经、纬度)。
  • 反地理编码

    • 经纬度 -> 地名。可以根据地理坐标(经、纬度)确定位置信息(街道、门牌等)。

1、GeoCoder 地理编码

  • 配置

    	// 包含头文件
    #import <CoreLocation/CoreLocation.h>
  • 地理编码

    	// 声明 CLGeocoder 对象
    @property (nonatomic, strong) CLGeocoder *geocoder; // 实例化 CLGeocoder 对象
    self.geocoder = [[CLGeocoder alloc] init]; // 开始编码
    [self.geocoder geocodeAddressString:self.addressField.text
    completionHandler:^(NSArray *placemarks, NSError *error) { // 判断编码是否成功
    if (error || 0 == placemarks.count) { NSLog(@"erroe = %@, placemarks.count = %ld", error, placemarks.count);
    self.detailAddressLabel.text = @"你输入的地址找不到,可能在火星上"; } else { // 编码成功(找到了具体的位置信息) // 输出查询到的所有地标信息
    for (CLPlacemark *placemark in placemarks) { NSLog(@"name = %@, locality = %@, country = %@", placemark.name, placemark.locality, placemark.country);
    } // 显示最前面的地标信息
    CLPlacemark *firstPlacemark = [placemarks firstObject]; self.longitudeLabel.text = [NSString stringWithFormat:@"%.2f", firstPlacemark.location.coordinate.longitude];
    self.latitudeLabel.text = [NSString stringWithFormat:@"%.2f", firstPlacemark.location.coordinate.latitude]; self.detailAddressLabel.text = [NSString stringWithFormat:@"%@,%@,%@", firstPlacemark.name, firstPlacemark.locality, firstPlacemark.country];
    }
    }];
  • 反地理编码

    	// 声明 CLGeocoder 对象
    @property (nonatomic, strong)CLGeocoder *geocoder; // 实例化 CLGeocoder 对象
    self.geocoder = [[CLGeocoder alloc] init]; // 创建 CLLocation 对象
    CLLocation *location = [[CLLocation alloc] initWithLatitude:[self.latitudeField.text doubleValue]
    longitude:[self.longtitudeField.text doubleValue]]; // 开始反编码
    [self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { // 判断反编码是否成功
    if (error || 0 == placemarks.count) { NSLog(@"erroe = %@, placemarks.count = %ld", error, placemarks.count);
    self.reverseDetailAddressLabel.text = @"你输入的经纬度找不到,可能在火星上"; } else { // 反编码成功(找到了具体的位置信息) // 输出查询到的所有地标信息
    for (CLPlacemark *placemark in placemarks) { NSLog(@"name=%@, locality=%@, country=%@", placemark.name, placemark.locality, placemark.country);
    } // 显示最前面的地标信息
    CLPlacemark *firstPlacemark = [placemarks firstObject]; self.longtitudeField.text = [NSString stringWithFormat:@"%.2f", firstPlacemark.location.coordinate.longitude];
    self.latitudeField.text = [NSString stringWithFormat:@"%.2f", firstPlacemark.location.coordinate.latitude]; self.reverseDetailAddressLabel.text = [NSString stringWithFormat:@"%@,%@,%@", firstPlacemark.name, firstPlacemark.locality, firstPlacemark.country];
    }
    }];
    	地理编码信息:
    
    		placemark.name,                                                    // 地名
    placemark.thoroughfare, // 街道
    placemark.subThoroughfare, // 街道相关信息,例如门牌等
    placemark.locality, // 城市
    placemark.subLocality, // 城市相关信息,例如标志性建筑
    placemark.administrativeArea, // 州
    placemark.subAdministrativeArea, // 其他行政区域信息
    placemark.postalCode, // 邮编
    placemark.ISOcountryCode, // 国家编码
    placemark.country, // 国家
    placemark.inlandWater, // 水源、湖泊
    placemark.ocean, // 海洋
    placemark.areasOfInterest // 关联的或利益相关的地标 placemark.addressDictionary[@"City"]]; // 城市
    placemark.addressDictionary[@"Country"]]; // 国家
    placemark.addressDictionary[@"CountryCode"]]; // 国家编码
    placemark.addressDictionary[@"FormattedAddressLines"][0]]; // 街道
    placemark.addressDictionary[@"Name"]]; // 地名
    placemark.addressDictionary[@"State"]]; // 州
    placemark.addressDictionary[@"SubLocality"]]; // 城市相关信息

iOS - GeoCoder 地理编码的更多相关文章

  1. iOS地图 -- 地理编码和反地理编码

    地理编码和反地理编码 用到的类和方法 CLGeocoder --> 地理编码管理器 - (void)geocodeAddressString:(NSString *)addressString ...

  2. IOS反地理编码取得城市名称

    // 获取当前所在的城市名 CLGeocoder *reverseGeocoder=[[CLGeocoder alloc] init]; [reverseGeocoder reverseGeocode ...

  3. iOS开发拓展篇—CoreLocation地理编码

    iOS开发拓展篇—CoreLocation地理编码 一.简单说明 CLGeocoder:地理编码器,其中Geo是地理的英文单词Geography的简写. 1.使用CLGeocoder可以完成“地理编码 ...

  4. 【iOS】7.4 定位服务->2.1.3.2 定位 - 官方框架CoreLocation 功能2:地理编码和反地理编码

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...

  5. iOS 原生地图地理编码与反地理编码

    当我们要在App实现功能:输入地名,编码为经纬度,实现导航功能. 那么,我需要用到原生地图中的地理编码功能,而在Core Location中主要包含了定位.地理编码(包括反编码)功能. 在文件中导入 ...

  6. iOS之获取经纬度并通过反向地理编码获取详细地址

    _locationManager = [[CLLocationManager alloc] init]; //期望的经度 _locationManager.desiredAccuracy = kCLL ...

  7. 猫猫学iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 输入经纬度,能够得到相应的地名 二:思路 跟地里编码差 ...

  8. iOS地理反地理编码--CoreLocation

    .sidebar{float:left;width:220px;} .container-fluid>.content{margin-left:240px;} a{color:#0069d6;t ...

  9. 在C#中通过使用Newtonsoft.Json库来解析百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据

    百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据,如下所示: http://api.map.baidu.com/geocoding/v3/?address=**省**市**区**路 ...

随机推荐

  1. XPath 节点

    在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档节点(或称为根节点). XPath 术语 节点(Node) 在 XPath 中,有七种类型的节点:元素.属性.文 ...

  2. struts---JSP界面验证码生成与验证

    之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来! 首先是生成随机验证码图片的action: ...

  3. AS配置IDE

    字体调整 settings->editor->colors&fonts->font,必须save as一个名称,个人选择Courier New字体,大小为14: 快捷键设置 ...

  4. Java 获取两个日期之间的日期

    1.前期需求,两个日期,我们叫他startDate和endDate,然后获取到两个日期之间的日期 /** * 获取两个日期之间的日期 * @param start 开始日期 * @param end ...

  5. just555 对话

    网易 新闻 2005-03-31 16:37:47 空!(19194697)555,你在大连炒单,单日最大盈利率多少? 2005-03-31 16:37:59 just555(79610908)最大1 ...

  6. web 项目 连接mycat 读写分离失效问题,

    问题描述:mycat 读写分离已配好,在sql工具上查询操作是可以的,但是在项目中,读数据就走write 数据库, 解决      :环境spring +mvc +ibaites,在java中自己写j ...

  7. 浅述WinForm多线程编程与Control.Invoke的应用

    VS2008.C#3.0在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来.一个最直接的方法便是使用多线程.多线程编程的方式在W ...

  8. 在ie与火狐的兼容性

    1.在火狐下  document.getElementById("id").textContent可以获取当前获取id下的内容   而在ie下则为:document.getElem ...

  9. 一周试用yii开发一个带各种该有功能的web程序(二)

    上篇随笔写完的是yii能使用简单的命令创建出一个基本的架构,我们只需要在这个架构上进行代码编写,扩展功能.而生成的一个小型系统是可以操作的,但是不是我们想要的,所以,这篇结合源码讲如何创建出我们自己的 ...

  10. Linux-4.4-x86_64 内核配置选项简介【转】

    转自:http://fx114.net/qa-188-150553.aspx 本篇文章主要介绍了"Linux-4.4-x86_64 内核配置选项简介",主要涉及到Linux-4.4 ...