개린이가 쓴 글이므로 오류가 있을 수 있음을 미리 알려드립니다 🐹 (꾸벅)
사용자의 위치정보를 받아오는 방법을 알아보겠습니다 :)
CLLocationManager 애플에서 위치 관련된 이벤트에서 사용하는 개체입니다
비콘과 관련된 것도 이 클래스를 통해 할 수 있다고 적혀있네요 !
자세한 내용은 공식 문서를 통해 확인하실 수 있습니다
우선 Info.plist에 이 것을 추가해주어야 한다.
Privacy - Location When In Use Usage Description - 앱이 사용중일때만 가져오기
Privacy - Location Always and When In Use Usage Description - 앱을 사용안해도 항상 가져오기
필요에 따라 원하는 것을 작성해주시면 됩니다 .
import UIKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
//LocationManager 선언
var locationManager:CLLocationManager!
//위도와 경도
var latitude: Double?
var longitude: Double?
override func viewDidLoad() {
super.viewDidLoad()
//locationManager 인스턴스 생성 및 델리게이트 생성
locationManager = CLLocationManager()
locationManager.delegate = self
//포그라운드 상태에서 위치 추적 권한 요청
locationManager.requestWhenInUseAuthorization()
//배터리에 맞게 권장되는 최적의 정확도
locationManager.desiredAccuracy = kCLLocationAccuracyBest
//위치업데이트
locationManager.startUpdatingLocation()
//위도 경도 가져오기
let coor = locationManager.location?.coordinate
latitude = coor?.latitude
longitude = coor?.longitude
}
이렇게 해주면 위도와 경도가 변수에 저장됩니다.
아쉽게도 시뮬레이터에서는 실험해볼 수가 없어서 휴대폰을 연결해서 실험해 보았습니다.
간단하게 버튼을 하나 연결해서 버튼을 눌렀을 때 현재 위도와 경도가 출력되도록 했습니다.
소수점 14번째 자리까지 나올만큼 정확하게 나오는데 개인정보라서 첫번째 자리 까지만 잘라보았습니다 :)
구글 지도에서 제가 사는 곳의 위도, 경도를 확인해보았습니다 !! 정확하게 나오네요 :)
단순히 위치 정보만 가져오는 것 뿐만 아니라 이런 저런 메소드가 많이 있었습니다.
이런 것들을 활용해서 위치정보를 이용한 서비스를 만들어보는 것도 재미있을 것 같아요 :)
다음에 도전해보기로 ㅎㅎ