현재 위치 확인

준비단계

이번 예시에서는 Map Kit View를 통해 사용자의 위치를 받아와야 한다. 그에 따르 준비단계로 Map Kit FrameworkCore Location Frameworkimport 한다. 다음과 같이 프로젝트를 선택하여 각각의 Frameworkimport 한다.

또한, 앱이 실행되면 사용자에게 위치 정보를 사용하도록 권한을 얻고, 그 내용을 저장해두어야 하는데 그에 대한 설정은 다음과 같다.

소스 코드

import UIKit
import MapKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {
    // 지도
    @IBOutlet weak var mapKit: MKMapView!
    // location 담당 객체
    let manager = CLLocationManager()
    
    
    
    // 사용자의 위치가 업데이트될때마다 호출
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        let location = locations[0] // 가장 최신의 정보를 획득
        let span = MKCoordinateSpanMake(0.01, 0.01) // 확대 정도 (숫자가 클수록 더 넓은 범위의 지도를 나타낸다)
        let myLocation = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude) // 위도 경도 생성
        let region = MKCoordinateRegionMake(myLocation, span) // 위도 경도를 바탕으로 지도가 표시될 확대 정도 설정
        mapKit.setRegion(region, animated: true) // 지도에 나타날 위치와 애니메이션 여부
        mapKit.showsUserLocation = true // 사용자 위치 보여줌
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        manager.delegate = self
        manager.desiredAccuracy = kCLLocationAccuracyBest // 위치의 정확성
        manager.requestAlwaysAuthorization() // 위치 정보 사용 권한 획득
        manager.startUpdatingLocation() // 현재 위치에 따른 정보 업데이트
    }
}

이처럼 작성하게 되면 사용자의 위치 정보가 업데이트 될때마다 앱에서의 위치도 변경된다. 실행 결과는 다음과 같다. (현재 Debug 메뉴를 통해 위치를 애플 본사로 설정해둔 상태)