Régler 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 plan pendant la navigation. Pour définir le mode de l'appareil photo, appelez l'une des méthodes suivantes associées à l'appareil photo:

  • Suivre ma position (GoogleMap.followMyLocation) : mode de 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 le sens du déplacement. Lorsque le paramètre de haut niveau de détail est activé (NavigationMapStyle.HIGH_DETAIL), les contours des bâtiments 2D s'affichent lorsque le niveau de zoom est supérieur ou égal à 19.

  • Épinglé à l'emplacement (GoogleMap.animateCamera et GoogleMap.moveCamera) : corrige la caméra à un emplacement spécifique. Lorsque vous utilisez ce mode, vous pouvez définir la position de la caméra ainsi que d'autres propriétés de celle-ci telles que la direction, l'inclinaison, le zoom, etc. Lorsque cette vue est sélectionnée et que le navigateur a été initialisé, le bouton Recenter (Recentrer) s'affiche.

  • Afficher l'aperçu de l'itinéraire (NavigationView.showRouteOverview ou SupportNavigationFragment.showRouteOverview) : affiche une vue d'ensemble de l'itinéraire restant, en utilisant les fonctions de panoramique et de zoom pour adapter l'itinéraire à la carte. Lorsque cette vue est sélectionnée, le bouton Recenter (Recentrer) s'affiche.

Si vous cliquez sur le bouton Recenter (Recentrer), la caméra passe en mode followMyLocation.

Suivre ma position

Le paramètre de caméra le plus courant consiste à définir la caméra sur l'appareil ou le véhicule, en indiquant sa position actuelle dans le trajet. Dans ce mode Caméra, vous pouvez afficher l'itinéraire avec la voiture toujours orientée vers le haut de l'écran avec une perspective inclinée (CameraPerspective.TILTED), ou vous pouvez voir la voiture circulant avec le nord (CameraPerspective.TOP_DOWN_NORTH_UP) ou avec la direction (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 possible sur la caméra. Dans ce mode, vous placez la caméra à un endroit spécifique, attribuez un orientation 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 présente certaines des méthodes les plus courantes 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 d'aperçu de l'itinéraire

Le paramètre de caméra showRouteOverview affiche l'intégralité du trajet. Pour les trajets comprenant 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 "Haute précision"

Lorsque le paramètre de haut niveau de détail est activé, les contours des bâtiments 2D sont affichés lorsque le niveau de zoom de la caméra est réglé sur 19 ou plus. Vous pouvez ignorer le niveau de zoom pendant la navigation à l'aide d'un objet FollowMyLocationOptions. Cela vous permet d'augmenter le niveau de zoom de façon à afficher les contours des bâtiments en 2D lorsque l'utilisateur s'approche de sa destination.

Dans cet exemple, le paramètre "Détail" est activé:

  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'interface utilisateur 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.