좌표값과 주소 추출

  • 사용자의 좌표값을 얻기 위해서는 CLLocationManager를 사용해야 한다.
  • 좌표값을 토대로 주소를 얻기 위해서는 CLGeocoder를 사용해야 한다.
import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {
    
    let manager = CLLocationManager() // 위치 관련 담당 객체
    let geoCoder = CLGeocoder() // 지리 좌표와 장소명 변환 담당 객체
    
    
    
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        let location = locations[0] // 가장 최신의 정보 획득
        print("현재 위도는 \(location.coordinate.latitude), 현재 경도는 \(location.coordinate.longitude) 입니다.")
        
        // 좌표를 주소로 변환하는 메소드
        geoCoder.reverseGeocodeLocation(location) { (placemark, error) in
            if error != nil {
                print("Error")
            } else {
                let place = placemark?[0] // 가장 최신의 정보 획득
                print("\(place?.country), \(place?.administrativeArea), \(place?.subAdministrativeArea), \(place?.locality), \(place?.subLocality)")
            }
        }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        manager.delegate = self
        manager.desiredAccuracy = kCLLocationAccuracyBest // 위치 정보 정확성
        manager.requestAlwaysAuthorization() // 위치 정보 사용 권한 획득
        manager.startUpdatingLocation() // 현재 위치에 따른 정보 업데이트
    }
}
  • 실행 결과는 다음과 같다