导读
CoreLocatio除了提供位置跟踪功能之外,在定位服务中还包含CLGeocoder类用于处理地理编码和逆地理编码(又叫反地理编码)功能。
地理编码:根据给定的位置(通常是地名关键字),来确定地理坐标(经、纬度)等信息。
逆地理编码:可以根据地理坐标(经、纬度),来确定位置信息(街道、门牌等)。
地理编码
主要方法:
// addressString:地名
// completionHandler:回调,返回一个包含地标对象(CLPlacemark)的数组和错误信息(NSError)
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
逆地理编码
主要方法:
// location 位置对象
// completionHandler:回调,返回一个包含地标对象(CLPlacemark)的数组和错误信息(NSError)
- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler;
CLPlacemark
CLPlacemark:定位框架中地标类,封装了详细的地理信息。
注意:CLPlacemark地标对象没法直接手动创建, 只能通过(反)地理编码获取
//位置对象信息, 里面包含经纬度,海拔等等
@property (nonatomic, readonly, copy, nullable) CLLocation *location;
//地标对象对应的区域
@property (nonatomic, readonly, copy, nullable) CLRegion *region;
//时区
@property (nonatomic, readonly, copy, nullable) NSTimeZone *timeZone ;
//存放街道,省市等信息
@property (nonatomic, readonly, copy, nullable) NSDictionary *addressDictionary;
//地址全称
@property (nonatomic, readonly, copy, nullable) NSString *name;
//街道名称
@property (nonatomic, readonly, copy, nullable) NSString *thoroughfare;
//街道相关信息,例如门牌等
@property (nonatomic, readonly, copy, nullable) NSString *subThoroughfare;
//城市名称
@property (nonatomic, readonly, copy, nullable) NSString *locality;
//城市相关信息,例如标志性建筑
@property (nonatomic, readonly, copy, nullable) NSString *subLocality;
//省名称
@property (nonatomic, readonly, copy, nullable) NSString *administrativeArea;
//其他行政区域信息
@property (nonatomic, readonly, copy, nullable) NSString *subAdministrativeArea;
//邮编
@property (nonatomic, readonly, copy, nullable) NSString *postalCode;
//国家编码
@property (nonatomic, readonly, copy, nullable) NSString *ISOcountryCode;
//国家名称
@property (nonatomic, readonly, copy, nullable) NSString *country;
//水源、湖泊
@property (nonatomic, readonly, copy, nullable) NSString *inlandWater;
//海洋
@property (nonatomic, readonly, copy, nullable) NSString *ocean;
//关联的或利益相关的地标
@property (nonatomic, readonly, copy, nullable) NSArray<NSString *> *areasOfInterest;