준비단계

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

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


소스 코드

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 메뉴를 통해 위치를 애플 본사로 설정해둔 상태)