사용자는 지도에서 동작을 사용하여 카메라의 확대/축소, 기울기, 위치, 회전을 제어할 수 있습니다. 프로그래매틱 방식으로 카메라를 구성할 수도 있습니다.

카메라 위치
지도 뷰는 공간의 특정 지점을 바라보는 카메라로 모델링됩니다. 카메라의 위치와 방향은 위도/경도/고도 좌표, 방향, 기울기, 범위, 롤로 정의됩니다.
위도, 경도, 고도
카메라의 초기 위치는 위도, 경도, 고도를 설정하여 정의됩니다. 이러한 값은 카메라가 가리키는 위치나 중심이 아니라 카메라가 배치되는 위치를 결정합니다.
위도는 -90도 이상 90도 이하로 설정할 수 있습니다. 경도는 -180도 이상 180도 이하로 설정할 수 있습니다. 고도는 해발 고도(미터)로 지정됩니다.
이 범위보다 크거나 작은 값은 범위 내의 가장 가까운 값으로 고정됩니다. 예를 들어 위도를 100으로 지정하면 값이 90으로 설정됩니다.
제목
방향은 지도의 나침반 방향을 지정하며, 진북에서 시계 방향으로 측정됩니다(단위: 도). 북쪽은 0도, 동쪽은 90도, 남쪽은 180도, 서쪽은 270도에 해당합니다.
기울이기
기울기는 수직축을 기준으로 카메라의 각도를 지정하며, 도 단위로 측정됩니다. 기울기가 0도이면 카메라가 지구를 향해 수직으로 아래를 가리킵니다(천저). 기울기가 90도이면 카메라가 방향으로 지정된 방향을 가로로 가리킵니다.
범위
범위는 카메라 자체 위치와 지도 중심 사이의 거리(미터)를 정의합니다. 범위는 0미터 (매우 가까움)에서 최대 6, 300만 미터까지 다양하므로 매우 가까운 거리에서부터 전 세계적인 관점에 이르기까지 다양한 뷰를 제공할 수 있습니다. 이렇게 하면 지도가 '확대' 또는 '축소'되는 정도를 효과적으로 제어할 수 있습니다.
롤
롤은 지평선을 기준으로 카메라의 각도를 설정하며, 도 단위로 측정됩니다. 이 매개변수를 사용하면 비행 시뮬레이션 중에 뱅킹과 같은 효과를 만들거나 전체 배럴 롤을 만들어 카메라를 시야 축을 중심으로 회전할 수 있습니다.
카메라 제어
다음 코드 샘플은 프로그래매틱 방식으로 카메라를 제어하는 방법을 보여줍니다.Swift
public static var sanFrancisco: Camera = .init(
center: .init(
latitude: 37.7845812,
longitude: -122.3660241,
altitude: 585),
fieldOfView: .init(degrees: 100),
heading: 288.0,
tilt: 75.0,
roll: 0.0,
range: 100)
UI 컨트롤
iOS용 지도 3D SDK는 표준 동작 외에도 카메라 위치를 조작할 수 있는 UI 컨트롤을 제공합니다.
- 확대/축소 컨트롤은 지도의 확대/축소 수준을 변경할 수 있는 '+' 및 '-' 버튼을 표시합니다.
- 이동 컨트롤은 지도의 중심을 변경할 수 있는 '←', '→', '↑', '↓' 버튼을 표시합니다.
- 회전 컨트롤은 카메라의 방향을 변경할 수 있는 '↺' 및 '↻'를 표시합니다.
- 기울기 컨트롤은 카메라의 기울기를 변경할 수 있는 '^' 및 '⌄'를 표시합니다.
- 나침반 컨트롤은 나침반의 북쪽 방향을 나타내며 카메라를 북쪽 방향으로 재설정할 수 있습니다.
다음 코드 샘플은 UI 컨트롤의 공개 상태를 변경하는 방법을 보여줍니다.
swift struct ContentView: View { @State private var showControls = true</p> <p>var body: some View { Map(mode: .hybrid) .mapControls(at: .trailing) { if showControls { CompassControl() ZoomControl() TiltControl() } } } } ```