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

카메라 위치
지도 뷰는 공간의 특정 지점을 바라보는 카메라로 모델링됩니다. 카메라의 위치와 방향은 위도/경도/고도 좌표('중심'으로 정의되며 카메라가 가리키는 위치), 방향, 기울기, 범위, 롤로 정의됩니다.
중심 (위도, 경도, 고도)
center는 카메라가 관찰하는 3D 공간의 특정 지점을 정의합니다. 이는 위도, 경도, 고도 값을 결합하는 LatLngAltitude 클래스를 사용하여 지정됩니다. 이렇게 하면 카메라의 초점을 3차원으로 배치할 수 있습니다.
위도는 -90도 이상 90도 이하로 설정할 수 있습니다. 경도는 -180도 이상 180도 이하로 설정할 수 있습니다. 고도는 미터 단위로 지정되며 고도가 해석되는 방식은 카메라의 altitudeMode(기본적으로 AltitudeMode.ABSOLUTE, AltitudeMode.RELATIVE_TO_GROUND 또는 AltitudeMode.RELATIVE_TO_MESH)에 의해 결정됩니다.
제목
방향은 지도의 나침반 방향을 지정하며, 진북에서 시계 방향으로 측정됩니다(단위: 도). 북쪽은 0도, 동쪽은 90도, 남쪽은 180도, 서쪽은 270도에 해당합니다.
기울이기
기울기는 수직축을 기준으로 카메라의 각도를 지정하며, 도 단위로 측정됩니다. 기울기가 0도이면 카메라가 지구를 향해 수직으로 아래를 가리킵니다(천저). 기울기가 90도이면 카메라가 방향으로 지정된 방향을 가로로 가리킵니다.
범위
범위는 카메라 자체 위치와 지도 중심 사이의 거리(미터)를 정의합니다. 범위는 0미터 (매우 가까움)에서 최대 6, 300만 미터까지 다양하므로 매우 가까운 거리에서부터 전 세계적인 관점에 이르기까지 다양한 뷰를 제공할 수 있습니다. 이렇게 하면 지도가 '확대' 또는 '축소'되는 정도를 효과적으로 제어할 수 있습니다.
롤
롤은 지평선을 기준으로 카메라의 각도를 설정하며, 도 단위로 측정됩니다. 이 매개변수를 사용하면 비행 시뮬레이션 중에 뱅킹과 같은 효과를 만들거나 전체 배럴 롤을 만들어 카메라를 시야 축을 중심으로 회전할 수 있습니다.
카메라 제어
다음 코드 샘플은GoogleMap3D에서 setCamera 메서드를 호출하여 프로그래매틱 방식으로 Camera를 제어하는 방법을 보여줍니다.
이 코드 샘플을 사용하려면 설정 및 앱에 3D 지도 추가의 안내에 따라 기본 3D 지도로 Android 스튜디오 프로젝트를 설정하세요. 그런 다음 MainActivity.kt 파일에 다음 코드를 추가합니다.
// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.camera
import com.google.android.gms.maps3d.model.latLngAltitude
// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.setCamera(
camera {
center = latLngAltitude {
latitude = 38.743502
longitude = -109.499374
altitude = 1467.0
}
heading = 350.0
tilt = 58.1
range = 138.2
roll = 0.0
}
)
UI 컨트롤
Android용 지도 3D SDK는 표준 동작 외에도 카메라 위치를 조작할 수 있는 UI 컨트롤을 제공합니다.
- 확대/축소 컨트롤은 지도의 확대/축소 수준을 변경할 수 있는 '+' 및 '-' 버튼을 표시합니다.
- 이동 컨트롤은 지도의 중심을 변경할 수 있는 '←', '→', '↑', '↓' 버튼을 표시합니다.
- 회전 컨트롤은 카메라의 방향을 변경할 수 있는 '↺' 및 '↻'를 표시합니다.
- 기울기 컨트롤은 카메라의 기울기를 변경할 수 있는 '^' 및 '⌄'를 표시합니다.
- 나침반 컨트롤은 나침반의 북쪽 방향을 나타내며 카메라를 북쪽 방향으로 재설정할 수 있습니다.
다음 코드 샘플은 UI 컨트롤의 공개 상태를 변경하는 방법을 보여줍니다.
Kotlin
// Add imports
import com.google.android.gms.maps3d.UiControlSettings
import com.google.android.gms.maps3d.model.CompassControl
import com.google.android.gms.maps3d.model.TiltControl
import com.google.android.gms.maps3d.model.ZoomControl
...
val uiControlSettings = googleMap3D.getUiControlSettings()
// Show UI controls on the trailing edge of the map
uiControlSettings?.setUiControlsPlacement(
listOf(CompassControl(), ZoomControl(), TiltControl()),
UiControlSettings.ControlPlacement.TRAILING
)
// Hide UI controls on the trailing edge of the map
uiControlSettings?.setUiControlsPlacement(
emptyList(),
UiControlSettings.ControlPlacement.TRAILING
)