Ajuster la caméra

La caméra vous permet de modifier le point de vue de l'utilisateur sur la carte. Vous pouvez utiliser les modes de caméra 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 de caméra par défaut pour la navigation. Ce mode permet de fixer la caméra à l'appareil ou au véhicule. Pendant la navigation, la caméra est automatiquement orientée dans le sens de la marche.

  • Épinglé à un emplacement (GoogleMap.animateCamera et GoogleMap.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, telles que l'orientation, l'inclinaison et le zoom. Lorsque cette vue est sélectionnée et que le navigateur a été initialisé, le bouton Recentrer est visible.

  • Afficher l'aperçu de l'itinéraire (NavigationView.showRouteOverview ou NavigationFragment.showRouteOverview) : affiche un aperçu de l'itinéraire restant (jusqu'aux 45 prochaines minutes de temps de trajet), en effectuant un panoramique et un zoom si nécessaire pour adapter l'itinéraire à la vue de la carte. Lorsque cette vue est sélectionnée, le bouton Recentrer est visible.

Cliquez sur le bouton Recentrer pour passer la caméra en mode followMyLocation.

Mode Suivre ma position

Le paramètre de caméra le plus courant consiste à régler la caméra sur l'appareil ou le véhicule, en affichant sa position actuelle pendant le trajet. Dans ce mode, vous pouvez afficher l'itinéraire avec la voiture toujours dirigée vers le haut de l'écran avec une perspective inclinée (CameraPerspective.TILTED), ou vous pouvez voir la voiture se déplacer avec le nord (CameraPerspective.TOP_DOWN_NORTH_UP) ou avec le 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))

Mode de localisation épinglé

Le mode Pinned vous offre un contrôle maximal de la caméra. Dans ce mode, vous placez la caméra à un emplacement spécifique, vous lui attribuez une orientation, vous modifiez l'inclinaison pour définir l'angle de vue et vous 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 NavigationFragment 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 vers plusieurs destinations, ce mode affiche la partie non parcourue de l'itinéraire.

// Place the camera to see the remaining route:
mNavFragment.showRouteOverview();

Étape suivante

Pour en savoir plus sur la configuration des composants d'UI intégrés, consultez Personnaliser l'UI de navigation.