(反)地理編碼

(反)地理編碼

1. 概念解釋

  • 地理編碼: 是指根據地址關鍵字, 將其轉換成為對應的經緯度等信息;
  • 反地理編碼: 是指根據經緯度信息, 將其轉換成為對應的省市區街道等信息;

2. 測試環境

  • 必須聯網
  • XCode版本不限
  • iOS模擬器系統版本不限

3. 地理編碼

1. 導入CoreLocation框架以及對應的主頭文件

        #import <CoreLocation/CoreLocation.h>

2. 創建CLGeocoder對象

        self.geoC = [[CLGeocoder alloc] init];

3. 根據地址關鍵字, 進行地理編碼

        // 直接根據地址進行地理編碼(返回結果可能有多個,因為一個地點有重名)
        [self.geoC geocodeAddressString:@"廣州" completionHandler:^(NSArray<CLPlacemark *> * __nullable placemarks, NSError * __nullable error)
        {
            // 包含區,街道等信息的地標對象
            CLPlacemark *placemark = [placemarks firstObject];
            // 城市名稱
            NSString *city = placemark.locality;
            // 街道名稱
            NSString *street = placemark.thoroughfare;
            // 全稱
            NSString *name = placemark.name;
        }];

4. 反地理編碼

1. 導入CoreLocation框架以及對應的主頭文件

        #import <CoreLocation/CoreLocation.h>

2. 創建CLGeocoder對象

        self.geoC = [[CLGeocoder alloc] init];

3. 根據經緯度信息, 進行反地理編碼

        // 根據經緯度信息進行反地理編碼
        [self.geoC reverseGeocodeLocation:[[CLLocation alloc] initWithLatitude:21.123 longitude:123.345] completionHandler:^(NSArray<CLPlacemark *> * __nullable placemarks, NSError * __nullable error)
        {
            // 包含區,街道等信息的地標對象
            CLPlacemark *placemark = [placemarks firstObject];
            // 城市名稱
            NSString *city = placemark.locality;
            // 街道名稱
            NSString *street = placemark.thoroughfare;
            // 全稱
            NSString *name = placemark.name;
        }];

5. CLPlacemark(地標)

屬性 類型 含義
location CLLocation 位置對象信息, 里面包含經緯度, 海拔等等
region CLRegion 地標對象對應的區域
addressDictionary NSDictionary 存放街道,省市等信息
name NSString 地址全稱
thoroughfare NSString 街道名稱
locality NSString 城市名稱
administrativeArea NSString 省名稱
country NSString 國家名稱

6. 常見問題

  1. 測試無數據?
    • 首先, 檢查是否有聯網;
    • 其次, 如果是反地理編碼,可嘗試更換經緯度再次嘗試, 有的經緯度沒有對應信息

7. 應用場景

  • 一般與定位結合使用, 確定當前位置的具體地理信息
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容