본문 바로가기
iOS

Swift 현재 위치 받아오기 (위도, 경도)

by 정석 지향 2021. 2. 14.
반응형

CoreLocation을 이용하여 위치정보를 받아와 위도 경도를 알아낼 수 있습니다.

주석에 각 코드의 설명을 적어놓았습니다.

 

Info.plist에 Privacy - Location When In Use Usage Description을 추가하여

Value 부분에 원하는 alert 문구 내용을 적어줄 수 있습니다.

import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {
    
    var locationManger = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        // 델리게이트 설정
        locationManger.delegate = self
        // 거리 정확도 설정
        locationManger.desiredAccuracy = kCLLocationAccuracyBest
        // 사용자에게 허용 받기 alert 띄우기
        locationManger.requestWhenInUseAuthorization()
  
        // 아이폰 설정에서의 위치 서비스가 켜진 상태라면
        if CLLocationManager.locationServicesEnabled() {
            print("위치 서비스 On 상태")
         locationManger.startUpdatingLocation() //위치 정보 받아오기 시작
            print(locationManger.location?.coordinate)
        } else {
            print("위치 서비스 Off 상태")
        }
        
    }
    
    // 위치 정보 계속 업데이트 -> 위도 경도 받아옴
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        print("didUpdateLocations")
        if let location = locations.first {
            print("위도: \(location.coordinate.latitude)")
            print("경도: \(location.coordinate.longitude)")
        }
    }
    
    // 위도 경도 받아오기 에러
    func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
        print(error)
    }

}

 

 

 

반응형

'iOS' 카테고리의 다른 글

iOS window rootviewcontroller 변경  (2) 2021.03.04
iOS 탭바컨트롤러 tint, barTint, unselectedTintColor  (0) 2021.03.02
Swift delegate deinit  (0) 2021.02.10
Swift IBOutlet weak strong 차이  (0) 2021.02.10
Swift 이미지 @1x @2x @3x  (0) 2021.02.05