免费开源的iOS开发学习平台

定位服务:3-地理信息编码简介

CLGeocoder类简介

CLGeocoder类是在CoreLocation框架中提供的用于翻译地理位置的类,通过CLGeocoder类可以获取具体地理位置的经纬度信息,同时还可以根据经纬度来获取具体的位置信息。在CLGeocoder类中,提供了如下一些常用的方法和属性。

  • 根据地理位置名称获取经纬度
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler;
  • 根据经纬度获取地理位置名称
- (void)reverseGeocodeLocation:(CLLocation *)location completionHandler:(CLGeocodeCompletionHandler)completionHandler;

CLPlacemark类简介

当我们调用CLGeocoder类的geocodeAddressString:completionHandler:方法后,在该方法的回调block中可以返回CLPlacemark类的对象。CLPlacemark的字面意思是地标,地址的文字描述信息都封装在CLPlacemark类中,这里介绍几个CLPlacemark类中与文字描述相关的属性。

  • 位置信息。CLLocation类的属性,可以获取位置对应的经纬度以及海拔高度等信息。
@property (nonatomic, readonly, copy, nullable) CLLocation *location;
  • 地址信息的字典,包含一些地址信息的键值对。
@property (nonatomic, readonly, copy, nullable) NSDictionary *addressDictionary;
  • 街道信息
@property (nonatomic, readonly, copy, nullable) NSString *thoroughfare; 
  • 城市信息
@property (nonatomic, readonly, copy, nullable) NSString *locality; 
  • 行政区信息
@property (nonatomic, readonly, copy, nullable) NSString *administrativeArea; 
  • 国家信息
@property (nonatomic, readonly, copy, nullable) NSString *country;