혹시라도 아직 네이버맵 설정을 끝내지 않으셨다면
이전 포스팅을 읽고 오시면 좋을 것 같습니다!
여러가지 메소드가 있기 때문에 간결하게(?) 포스팅을 할 예정입니다.
var naverMapView: NMFNaverMapView
우선 맵뷰는 이렇게 전역변수로 세팅해놨다고 생각하겠습니다.
전 포스팅에서는 NMFMapView로 선언을 했지만,
이번 포스팅에서는 NMFMapView를 한 번 감싼 NMFNaverMapView를 사용하도록 할게요!
로케이션 버튼 출력
mapView.showLocationButton = true
true로 설정할 경우 Zoom 버튼과 현재위치 버튼이 보여집니다.
ZoomLevel 설정
naverMapView.mapView.zoomLevel = 14
값이 클수록 지도가 확대됩니다.
PositionMode
naverMapView.mapView.positionMode = .compass
compass
위치를 추적하면서 카메라의 좌표와 헤딩도 따라 움직이는 모드. `NMFLocationOverlay`와 카메라의 좌표,
헤딩이 사용자의 위치, 사용자가 바라보고 있는 방향을 따라 움직입니다. API나 제스처를 사용해 지도를 임의로 움직일
경우 모드가 `NMFMyPositionNormal`로 바뀝니다.
direction
위치를 추적하면서 카메라도 따라 움직이는 모드. `NMFLocationOverlay`와 카메라의 좌표가 사용자의 위치를 따라
움직입니다. API나 제스처를 사용해 지도를 임의로 움직일 경우 모드가 `NMFMyPositionNormal`로 바뀝니다.
normar
위치는 추적하지만 지도는 움직이지 않는 모드. `NMFLocationOverlay`가 사용자의 위치를 따라 움직이나 지도는
움직이지 않습니다.
disabled
위치 추적을 사용하지 않는 모드. `NMFLocationOverlay`는 움직이지 않습니다.
좌표(카메라)이동
let cameraUpdate = NMFCameraUpdate(scrollTo: NMGLatLng(lat: lat, lng: lng))
naverMapView.mapView.moveCamera(cameraUpdate)
마커 띄우기 및 클릭 이벤트
let marker = NMFMarker()
let x = Double(item.xCoord) ?? 0.0
let y = Double(item.yCoord) ?? 0.0
marker.captionRequestedWidth = 60 // 캡션 너비
marker.captionText = item.facName // 캡션 네임
marker.position = NMGLatLng(lat: x, lng: y) // 마커 위치
marker.tag = UInt(i) // 마커 태그 (마커 식별용)
let image = UIImage(named: IMAGE_NAME)!.resizeImage(targetSize: CGSize(width: 25, height: 25))
marker.iconImage = NMFOverlayImage(image: image) // 마커 이미지는 NMFOverlayImage를 사용하여 추가합니다.
// 마커 클릭 이벤트
let handler = { [weak self] (overlay: NMFOverlay) -> Bool in
// 이벤트 추가
return true
}
marker.mapView = self.naverMapView.mapView
오버레이
let circleOverlay = NMFCircleOverlay(NMGLatLng(lat: 37.5666102, lng: 126.9783881), radius: 500) // 원 위치 및 반지름을 설정합니다.
circleOverlay.fillColor = .lightGray // 원 내부 색을 설정합니다.
circleOverlay.outlineColor = .red // 원 테두리 색을 설정합니다.
circleOverlay.outlineWidth = 3 // 원 테두리 두께를 설정합니다.
circleOverlay.mapView = naverMapView.mapView
pathOverlay (경로선)
let pathOverlay = NMFPath()
pathOverlay.color = .red // pathOverlay의 색
pathOverlay.outlineColor = .blue // pathOverlay 테두리 색
pathOverlay.width = 10 // pathOverlay 두께
// pathOverlay 경로를 설정합니다.
pathOverlay.path = NMGLineString(points: [
NMGLatLng(lat: 37.57152, lng: 126.97714),
NMGLatLng(lat: 37.56607, lng: 126.98268),
NMGLatLng(lat: 37.56445, lng: 126.97707),
NMGLatLng(lat: 37.55855, lng: 126.97822)
])
pathOverlay.mapView = naverMapView.mapView
이 외에도 여러가지가 있는데,
시간이 날 때마다 업데이트를 하겠습니다 :)
'iOS > 기술?' 카테고리의 다른 글
swift - 네이버맵 연동하기 (지도 띄우기) (0) | 2023.05.02 |
---|---|
swift - SnapKit & Then (0) | 2022.08.10 |
swift - ReactorKit (0) | 2022.05.04 |
swift - 카카오맵 API 연동하기 (3) | 2021.11.17 |
swift - CoreLocation을 사용해서 현재 위치(위도, 경도) 가져오기 (0) | 2021.11.15 |