Камера позволяет изменить точку зрения пользователя на карту. Вы можете использовать режимы камеры для управления поведением вида карты во время навигации. Чтобы установить режим камеры, вызовите один из следующих методов, связанных с камерой:
Следуйте за моим местоположением (
GoogleMap.followMyLocation
) — режим камеры по умолчанию для навигации. В этом режиме камера устанавливается на устройство или транспортное средство. Во время навигации камера автоматически поворачивается по направлению движения. Если включена настройка высокой детализации (NavigationMapStyle.HIGH_DETAIL
), двухмерные контуры зданий отображаются при уровне масштабирования 19 или выше.Прикреплено к местоположению (
GoogleMap.animateCamera
иGoogleMap.moveCamera
) — фиксирует камеру в определенном месте. При использовании этого режима вы можете установить местоположение камеры вместе с другими свойствами камеры, такими как направление, наклон, масштабирование и т. д. Когда выбран этот вид и инициализирован навигатор, отображается кнопка «Перецентрировать» .Показать обзор маршрута (
NavigationView.showRouteOverview
илиSupportNavigationFragment.showRouteOverview
) — отображает обзор оставшегося маршрута, панорамируя и масштабируя его по мере необходимости, чтобы вписать маршрут в представление карты. Когда выбран этот вид, отображается кнопка «Вновь центрировать» .
Нажатие кнопки «Re-center» переводит камеру в режим 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 или выше. Вы можете переопределить уровень масштабирования во время навигации с помощью объекта FollowMyLocationOptions
. Это позволяет вам увеличить уровень масштабирования настолько, чтобы отображать двухмерные контуры зданий по мере приближения пользователя к пункту назначения.
В этом примере включена настройка высокой детализации:
navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);
В следующем примере переопределяется уровень масштабирования камеры во время навигации. Уровень масштабирования установлен на 15, что достаточно для отображения двухмерных контуров зданий.
googleMap.followMyLocation(
FollowMyLocationOptions.builder(CameraPerspective.TILTED)
.setZoomLevel(15.0f)
.build());
Следующий шаг
См. раздел Настройка пользовательского интерфейса навигации , чтобы узнать, как настроить способ взаимодействия пользователей с вашей картой, определяя, какие из встроенных компонентов пользовательского интерфейса отображаются на карте.