카메라를 사용하면 사용자가 지도를 바라보는 시점을 변경할 수 있습니다. 카메라 모드를 사용하여 내비게이션 중에 지도 뷰의 동작을 제어할 수 있습니다. 카메라 모드를 설정하려면 카메라와 연결된 다음 메서드 중 하나를 호출합니다.
내 위치 추적 (
GoogleMap.followMyLocation
) — 내비게이션의 기본 카메라 모드입니다. 이 모드는 카메라를 기기 또는 차량으로 설정합니다. 내비게이션을 사용하면 카메라가 이동 방향을 자동으로 향합니다. 세부사항이 많은 설정이 사용 설정된 경우(NavigationMapStyle.HIGH_DETAIL
) 확대/축소 수준이 19 이상이면 2D 건물 윤곽선이 표시됩니다.위치에 고정됨 (
GoogleMap.animateCamera
및GoogleMap.moveCamera
) — 카메라를 특정 위치에 고정합니다. 이 모드를 사용하면 방위, 기울기, 확대/축소와 같은 다른 카메라 속성과 함께 카메라 위치를 설정할 수 있습니다. 이 뷰가 선택되고 탐색기가 초기화되면 중앙 재조정 버튼이 표시됩니다.경로 개요 표시 (
NavigationView.showRouteOverview
또는SupportNavigationFragment.showRouteOverview
) — 경로를 지도 뷰에 맞게 조정하기 위해 필요에 따라 화면 이동 및 확대/축소하면서 남은 경로의 개요를 표시합니다. 이 보기를 선택하면 중앙에 다시 배치 버튼이 표시됩니다.
중앙에 다시 배치 버튼을 클릭하면 카메라가 followMyLocation
모드로 설정됩니다.
내 위치 모드 팔로우
가장 일반적인 카메라 설정은 카메라를 기기나 차량에 장착하여 이동 중인 현재 위치를 보여주는 것입니다. 이 카메라 모드에서는 항상 화면 상단을 향하는 차량이 각도가 지정된 시점 (CameraPerspective.TILTED
)으로 경로를 보거나, 북쪽 (CameraPerspective.TOP_DOWN_NORTH_UP
) 또는 방향 (CameraPerspective.TOP_DOWN_HEADING_UP)
, 항상 화면 상단에 표시됨)을 기준으로 이동하는 차량을 볼 수 있습니다.
다음 코드 프래그먼트는 TILTED
관점을 사용합니다.
// Set the camera to follow the device (vehicle):
mNavFragment.getMapAsync(googleMap -> googleMap.followMyLocation(CameraPerspective.TILTED))
위치 모드에 고정됨
Pinned
모드를 사용하면 카메라를 가장 세부적으로 제어할 수 있습니다. 이 모드에서는 카메라를 특정 위치에 배치하고, 방위를 할당하여 카메라 뷰의 방향을 지정하고, 기울기를 변경하여 시야각을 설정하고, 카메라의 확대/축소 수준을 설정합니다.
다음 코드 스니펫은 카메라를 이동하는 일반적인 방법을 몇 가지 보여줍니다.
private static final LatLng SYDNEY = new LatLng(-33.88, 151.21);
private static final LatLng MOUNTAIN_VIEW = new LatLng(37.4, -122.1);
private GoogleMap map;
... // Obtain the map from a SupportNavigationFragment or NavigationView.
// Move the camera instantly to Sydney with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomIn());
// Zoom out to zoom level 10, animating with a duration of 2 seconds.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
// Construct a CameraPosition focusing on Mountain View and animate the camera to that position.
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(MOUNTAIN_VIEW) // Sets the center of the map to Mountain View
.zoom(17) // Sets the zoom
.bearing(90) // Sets the orientation of the camera to east
.tilt(30) // Sets the tilt of the camera to 30 degrees
.build(); // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
경로 개요 모드 표시
showRouteOverview
카메라 설정은 전체 여정을 표시합니다.
여러 목적지가 있는 여정의 경우 이 모드에서는 경로의 이동하지 않은 부분을 표시합니다.
// Place the camera to see the remaining route:
mNavFragment.showRouteOverview();
세부사항이 많은 설정
세부사항 수준이 높게 설정된 경우 카메라의 확대/축소 수준이 19 이상으로 설정되면 2D 건물 윤곽선이 표시됩니다. FollowMyLocationOptions
객체를 사용하여 탐색 중에 확대/축소 수준을 재정의할 수 있습니다. 이렇게 하면 사용자가 목적지에 가까워질 때 2D 건물 윤곽을 표시할 만큼 확대/축소 수준을 높일 수 있습니다.
이 예에서는 세부정보가 많은 설정을 사용 설정합니다.
navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);
다음 예에서는 탐색 중에 카메라의 확대/축소 수준을 재정의합니다. 확대/축소 수준은 2D 건물 윤곽선을 표시하기에 충분한 15로 설정되어 있습니다.
googleMap.followMyLocation(
FollowMyLocationOptions.builder(CameraPerspective.TILTED)
.setZoomLevel(15.0f)
.build());
다음 단계
지도에 표시할 기본 제공 UI 구성요소를 결정하여 사용자가 지도와 상호작용하는 방식을 맞춤설정하는 방법을 알아보려면 내비게이션 UI 맞춤설정을 참고하세요.