iOS - GeoCoder 地理编码
前言
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 地理编码的更多相关文章
- iOS地图 -- 地理编码和反地理编码
地理编码和反地理编码 用到的类和方法 CLGeocoder --> 地理编码管理器 - (void)geocodeAddressString:(NSString *)addressString ...
- IOS反地理编码取得城市名称
// 获取当前所在的城市名 CLGeocoder *reverseGeocoder=[[CLGeocoder alloc] init]; [reverseGeocoder reverseGeocode ...
- iOS开发拓展篇—CoreLocation地理编码
iOS开发拓展篇—CoreLocation地理编码 一.简单说明 CLGeocoder:地理编码器,其中Geo是地理的英文单词Geography的简写. 1.使用CLGeocoder可以完成“地理编码 ...
- 【iOS】7.4 定位服务->2.1.3.2 定位 - 官方框架CoreLocation 功能2:地理编码和反地理编码
本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...
- iOS 原生地图地理编码与反地理编码
当我们要在App实现功能:输入地名,编码为经纬度,实现导航功能. 那么,我需要用到原生地图中的地理编码功能,而在Core Location中主要包含了定位.地理编码(包括反编码)功能. 在文件中导入 ...
- iOS之获取经纬度并通过反向地理编码获取详细地址
_locationManager = [[CLLocationManager alloc] init]; //期望的经度 _locationManager.desiredAccuracy = kCLL ...
- 猫猫学iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市
猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 输入经纬度,能够得到相应的地名 二:思路 跟地里编码差 ...
- iOS地理反地理编码--CoreLocation
.sidebar{float:left;width:220px;} .container-fluid>.content{margin-left:240px;} a{color:#0069d6;t ...
- 在C#中通过使用Newtonsoft.Json库来解析百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据
百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据,如下所示: http://api.map.baidu.com/geocoding/v3/?address=**省**市**区**路 ...
随机推荐
- C# 利用SQLite对.DB和.logdb加密和解密和SQLite创建数据库
1.最近研究了下利用SQLite为db文件简单的加密和解密 private static SQLiteConnection GetConnection() { SQLiteConnection con ...
- 浅析JS中的模块规范(CommonJS,AMD,CMD)////////////////////////zzzzzz
浅析JS中的模块规范(CommonJS,AMD,CMD) 如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯,我也听过,但之前也真的是听听而已. ...
- PHP $_SERVER详解
$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言 $_SERVER['REMOTE_ADDR'] //当前用户 IP . $_SERVER['REMOTE_HOST'] ...
- SecureCRT:保存输出日志的方法
处理地址: http://blog.sina.com.cn/s/blog_64c1dd210101gzgz.html 或者: http://renchen.blog.51cto.com/4531967 ...
- Highcharts使用教程(1):制作简单图表
今天我们要使用JavaScript图表Highcharts制作简单的柱形图,我们已经安装好Highcharts,让我们开始制作图表吧. 步骤一 在网页中添加一个div.设置id,设置图表长.高.代码如 ...
- CSS、HTML5、JS
[att*=value]{}包含value属性的所有元素样式.[id*=div]{} a[href$=jpg]:after{} [att^=value]{}开头字符包含value属性的所有元素样式 [ ...
- 一次爬虫实践学习(C#)
我们经常浏览网页,有时候看到一些精美的图片,想下载下来保存,但是太多,如果一张一张的下载,那太费时了:如果你喜欢看书,看小说,那么浏览小说网站是常有的事,但是有时候我们不能联网,比如农村老家,如果还想 ...
- 省市联动sql脚本
create database ProCityData use Procitydata --创建Province(省表) create table Province ( ProID int prima ...
- android实现第三方登录之QQ登录
首先,当然是在腾讯开放平台(http://open.qq.com/)注册成为开发者,然后获取APP ID 1.下载SDK http://wiki.open.qq.com/wiki/mobile/SDK ...
- HAProxy配置SSL
前沿 据悉苹果强制APP在2016年底使用ATS协议,所以公司准备将部分站点http统一替换成https.所有我们就得测试下 1.首先原有的haproxy1.5升级到了1.7版本支持ssl 2.查看相 ...