La caméra vous permet de modifier le point de vue de l'utilisateur sur la carte. Vous pouvez utiliser les modes d'appareil photo pour contrôler le comportement de la vue de la carte pendant la navigation. Pour définir le mode de la caméra, appelez l'une des méthodes suivantes associées à la caméra :
Suivre ma position (
GoogleMap.followMyLocation
) : mode d'affichage de la caméra par défaut pour la navigation. Ce mode définit la caméra sur l'appareil ou le véhicule. Pendant la navigation, la caméra est automatiquement orientée dans la direction du trajet. Lorsque le paramètre de détails élevés est activé (NavigationMapStyle.HIGH_DETAIL
), les contours des bâtiments en 2D s'affichent lorsque le niveau de zoom est égal ou supérieur à 19.Épinglé à un emplacement (
GoogleMap.animateCamera
etGoogleMap.moveCamera
) : fixe la caméra à un emplacement spécifique. Lorsque vous utilisez ce mode, vous pouvez définir l'emplacement de la caméra ainsi que d'autres propriétés de la caméra, comme la direction, l'inclinaison, le zoom, etc. Lorsque cette vue est sélectionnée et que le navigateur a été initialisé, le bouton Re-center (Recentrer) est visible.Afficher un aperçu de l'itinéraire (
NavigationView.showRouteOverview
ouSupportNavigationFragment.showRouteOverview
) : affiche un aperçu du reste de l'itinéraire, en effectuant un panoramique et un zoom selon les besoins pour l'adapter à la vue de la carte. Lorsque cette vue est sélectionnée, le bouton Recentrer est visible.
Cliquez sur le bouton Recentrer pour définir la caméra sur le mode followMyLocation
.
Suivre mon mode de localisation
Le réglage le plus courant consiste à configurer la caméra sur l'appareil ou le véhicule, afin d'afficher sa position actuelle sur le trajet. Dans ce mode d'affichage, vous pouvez voir l'itinéraire avec la voiture toujours orientée vers le haut de l'écran avec une perspective angulaire (CameraPerspective.TILTED
), ou vous pouvez voir la voiture se déplacer vers le nord (CameraPerspective.TOP_DOWN_NORTH_UP
) ou avec un cap (CameraPerspective.TOP_DOWN_HEADING_UP)
) toujours en haut de l'écran.
Le fragment de code suivant utilise la perspective TILTED
:
// Set the camera to follow the device (vehicle):
mNavFragment.getMapAsync(googleMap -> googleMap.followMyLocation(CameraPerspective.TILTED))
Épinglé au mode de localisation
Le mode Pinned
vous offre le plus de contrôle sur la caméra. Dans ce mode, vous placez la caméra à un emplacement spécifique, attribuez une direction pour orienter la vue de la caméra, modifiez l'inclinaison pour définir l'angle de vue et définissez le niveau de zoom de la caméra.
L'extrait de code suivant illustre quelques-unes des méthodes les plus utilisées pour déplacer la caméra.
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));
Afficher le mode Aperçu de l'itinéraire
Le paramètre de caméra showRouteOverview
affiche l'intégralité du trajet.
Pour les trajets comportant plusieurs destinations, ce mode affiche la partie non parcourue de l'itinéraire.
// Place the camera to see the remaining route:
mNavFragment.showRouteOverview();
Paramètre de détail élevé
Lorsque le paramètre de détails élevés est activé, les contours des bâtiments en 2D s'affichent lorsque le niveau de zoom de la caméra est défini sur 19 ou plus. Vous pouvez remplacer le niveau de zoom pendant la navigation à l'aide d'un objet FollowMyLocationOptions
. Cela vous permet d'augmenter suffisamment le niveau de zoom pour afficher les contours des bâtiments en 2D à mesure que l'utilisateur s'approche de sa destination.
Cet exemple active le paramètre de détail élevé:
navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);
L'exemple suivant remplace le niveau de zoom de la caméra pendant la navigation. Le niveau de zoom est défini sur 15, ce qui est suffisamment élevé pour afficher les contours des bâtiments en 2D.
googleMap.followMyLocation(
FollowMyLocationOptions.builder(CameraPerspective.TILTED)
.setZoomLevel(15.0f)
.build());
Étape suivante
Consultez Personnaliser l'UI de navigation pour découvrir comment personnaliser la façon dont les utilisateurs interagissent avec votre carte en déterminant quels composants de l'interface utilisateur intégrés apparaissent sur la carte.