안녕하세요
오늘은 삽질 100번하고 알아낸
사용자의 현재 위치 가져와서 띄우기!를 공유해볼게요
이번 글에서는 네이버 지도 SDK를 이용해 앱에서 현재 위치를 지도에 띄우는 방법을 소개합니다~
우선 우리는 지도에 사용자의 현재 위치를 띄우기 위해서 무엇을 할꺼냐!
현재 위치 좌표 가져오기 -> 네이버 지도 기능으로 그 좌표로 카메라 이동시켜서 -> 화면에 사용자의 위치 띄워주기!
1. 준비 작업
필수 라이브러리 설치하기
: 저는 네이버 지도 sdk를 SPM으로 깔아줬어요
https://github.com/navermaps/SPM-NMapsMap.git
GitHub - navermaps/SPM-NMapsMap
Contribute to navermaps/SPM-NMapsMap development by creating an account on GitHub.
github.com
잠만 근데 이거 왜이렇게 인기가 없음
링크 찾다가 당연히 이거 아닌줄..? ;;;
Info.plist 권한 설정
<key>NSLocationWhenInUseUsageDescription</key>
<string>현재 위치를 표시하기 위해 위치 권한이 필요합니다.</string>
이 과정을 잘 안해주면 나중에 앱 심사 리젝 맞을 가능성이 크대요
2. ViewController 기본 구성
final class HomeViewController: UIViewController, CLLocationManagerDelegate, NMFMapViewCameraDelegate {
private let mapView = NMFMapView()
private let locationManager = CLLocationManager()
override func viewDidLoad() {
...
}
}
- NMFMapView : 네이버 지도 객체
- 여기서 중요한 점!!! 삽질 포인트
네이버 지도에서 제공하는 현위치 버튼을 사용할 수도 있으나
현위치 버튼을 활성화 시키기 위해서는 NMFMapView() 가 아닌 NMFNaverMapView()를 선언해줘야함...
즉, 우리는 NMFMapView()로 선언해줬기 때문에 현위치 버튼 사용 불가!
그렇다면 왜 NMFMapView()를 사용하냐고?
이걸 사용해야 카메라 업데이트(지도 화면 현위치로 옮기는거) 가능함 ㄱ-,,,
이거 모두가 알아줬으면 좋겠다..
왤까,,, 네이버님께서 다 생각이 있으시겠지,,,암튼 그러함
나는 결국 카메라 업데이트를 선택하고 현위치 버튼은 내가 알아서 커스텀으로 만들기로 웅웅
- CLLocationManager : 위치 권한 요청 및 위치 가져오기 담당
(현위채 버튼 관련 문서 : https://navermaps.github.io/ios-map-sdk/guide-ko/4-1.html)
사용자 인터페이스 · NAVER Map iOS SDK
사용자 인터페이스 사용자는 컨트롤, 제스처 등 다양한 방법으로 지도와 상호작용할 수 있습니다. 개발자는 사용자가 지도와 상호작용하는 방법을 제어하고, UI 이벤트를 처리해 알맞은 피드백
navermaps.github.io
3. 위치 권한 요청 & 지도 카메라 이동
private func setLocationManager() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
// 사용자의 위치 좌표 가져오기 ⭐️ ⭐️ ⭐️
let userLocationCoordinate = locationManager.location?.coordinate
?? CLLocationCoordinate2D(latitude: 37.5666102, longitude: 126.9783881) // 기본값: 서울시청
print("사용자의 현재 위치 : \(userLocationCoordinate)")
cameraUpdate(lat: userLocationCoordinate.latitude, lng: userLocationCoordinate.longitude)
}
private func cameraUpdate(lat: Double, lng: Double) {
// 얻은 좌표로 카메라 이동 시켜 주기 ⭐️ ⭐️ ⭐️
let cameraUpdate = NMFCameraUpdate(scrollTo: NMGLatLng(lat: lat, lng: lng))
mapView.moveCamera(cameraUpdate)
}
- locationManager.delegate = self 해주기
- requestWhenInUseAuthorization() : 앱 사용 시 위치 접근 권한 요청
- locationManager.location?.coordinate : 현재 위치 가져오기 (없으면 기본 좌표 사용, 난 서울시청으로 해줌)
- NMFCameraUpdate : 지도 카메라를 해당 좌표로 이동
이렇게 하면 끝~
솔직히 다른 사람들 다 엄청 어렵게 하던데 내가 제일 쉽게 구현한거 같음요...!!!
다들 보고 쉽게 따라하시길,,,

그리고 시뮬레이터에서는 현재 위치가 이 미국 땅으로 나온다고 함
왜 님의 현재 위치 안나오냐고 슬퍼하지 말기 ㅎ
그럼 안녕~
'iOS > 흡구오디 -> 어딨쥐' 카테고리의 다른 글
| [흡구오디] FireStore의 데이터 가져와서 화면에 띄워주기 (1) | 2025.08.31 |
|---|---|
| [흡구오디] 어디까지 개발했나 알려드림 | UI 라이브러리 | Firestore 연동 (4) | 2025.08.29 |
| [흡구오디] 스크롤뷰 구현하기 | 지도뷰 + 스크롤뷰 조합 (1) | 2025.07.17 |
| [흡구오디] Main 스토리보드 삭제하는 법! | 네이버 지도 마커 좌표 받아오기 (0) | 2025.07.17 |
| [흡구오디] 네이버 지도 위에 마커 표시하기 | 마커 고정하기 (1) | 2025.07.16 |
댓글