iOS/UIKit

UIKit ;; Mapkit으로 지도에 현 위치 표시하기 4탄 (위도, 경도 값을 주소로 변환하기)

may_wonhui 2022. 11. 13. 17:09

https://may1coding.tistory.com/27

 

UIKit ;; Mapkit으로 지도에 현 위치 표시하기 3탄 (지도의 위도, 경도 값 받아오기)

https://may1coding.tistory.com/26 UIKit ;; Mapkit으로 지도에 현 위치 표시하기 2탄 (유저 현위치 띄우기) https://may1coding.tistory.com/25 UIKit ;; Mapkit으로 지도에 현 위치 표시하기 1탄.. 내가 구현을 맡은 뷰!! 지

may1coding.tistory.com

 

진짜 최최종...

앞서 Mapkit을 이용해서 화면에 지도를 띄우고, 초기에 보일 지도를 설정해서 보여주었다. (1탄)

그 후 버튼을 누르면 유저의 현 위치에 마커를 표시하고, 해당 위치로 이동했다. (2탄)

다음으로 해당 위치의 위도, 경도 값을 얻었다. (3탄)

이제!.. 진짜 마지막으로 얻은 위도, 경도 값을 주소로 변환해주면 된다.

 

 

이 작업은 CLGeocoder 클래스에서 가능하다.

 

 


CLGeocoder

 

해당 클래스는 지리적 좌표를 지명으로 변환해준다.

 

 

reverseGeocodeLocation 메서드를 이용하면 된다.

location에 위도와 경도로 이루어진 CLLocation값을 넣으면 변환 값이 completionHandler를 통해 들어오게 된다.

 

 

geocoder.reverseGeocodeLocation(CLLocation(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)) { placeMarks, error in
    guard let placeMarks = placeMarks,
          let address = placeMarks.last,
          error == nil else {
        return
    }
    DispatchQueue.main.async {
        self.locationDisplayLabel.text = "\(address.locality!) \(address.subLocality!)"
    }
}