你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS 原生地圖地理編碼與反地理編碼(詳解)

iOS 原生地圖地理編碼與反地理編碼(詳解)

編輯:IOS開發綜合

當我們要在App實現功能:輸入地名,編碼為經緯度,實現導航功能。

那麼,我需要用到原生地圖中的地理編碼功能,而在Core Location中主要包含了定位、地理編碼(包括反編碼)功能。

在文件中導入

#import <CoreLocation/CoreLocation.h>

地理編碼:

/** 
 地理編碼 
 */
- (void)geocoder { 
   
  CLGeocoder *geocoder=[[CLGeocoder alloc]init]; 
   
  NSString *addressStr = @"廣東省深圳市寶安區";//位置信息 
   
  [geocoder geocodeAddressString:addressStr completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) { 
    if (error!=nil || placemarks.count==0) { 
      return ; 
    } 
    //創建placemark對象 
    CLPlacemark *placemark=[placemarks firstObject]; 
    //經度 
    NSString *longitude =[NSString stringWithFormat:@"%f",placemark.location.coordinate.longitude]; 
    //緯度 
    NSString *latitude =[NSString stringWithFormat:@"%f",placemark.location.coordinate.latitude]; 
     
    NSLog(@"經度:%@,緯度:%@",longitude,latitude); 
     
  }]; 
   
}

地理反編碼:

/** 
 地理反編碼 
 */
- (void)reverseGeocoder{ 
  //創建地理編碼對象 
  CLGeocoder *geocoder=[[CLGeocoder alloc]init]; 
   
  //經度 
  NSString *longitude = @"113.23"; 
  //緯度 
  NSString *latitude = @"23.16"; 
   
   
  //創建位置 
  CLLocation *location=[[CLLocation alloc]initWithLatitude:[latitude floatValue] longitude:[longitude floatValue]]; 
   
   
  //反地理編碼 
  [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) { 
    //判斷是否有錯誤或者placemarks是否為空 
    if (error !=nil || placemarks.count==0) { 
      NSLog(@"%@",error); 
      return ; 
    } 
    for (CLPlacemark *placemark in placemarks) { 
      //詳細地址 
      NSString *addressStr = placemark.name; 
      NSLog(@"詳細地址1:%@",addressStr); 
      NSLog(@"詳細地址2:%@",placemark.addressDictionary); 
      NSLog(@"詳細地址3:%@",placemark.locality); 
    } 
     
  }]; 
}

以上這篇iOS 原生地圖地理編碼與反地理編碼(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持本站。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved