Régler la caméra

La caméra vous permet de modifier le point de vue de l'utilisateur de la carte. Vous pouvez utiliser les modes 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 d'appareil photo 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 fait automatiquement face au sens de circulation. Lorsque le paramètre de niveau de détail élevé 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 l'emplacement de la caméra ainsi que d'autres propriétés de caméra 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 Recentrer est visible.

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

Cliquez sur le bouton Recentrer pour que l'appareil photo passe en mode followMyLocation.

Mode Suivre mon emplacement

Le paramètre le plus courant de la caméra consiste à l'adapter à l'appareil ou au véhicule, afin d'afficher sa position actuelle pendant le trajet. Dans ce mode Appareil photo, 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 la voiture se déplaçant vers le nord (CameraPerspective.TOP_DOWN_NORTH_UP) ou avec une 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 pouvez placer la caméra à un emplacement spécifique, lui attribuer une direction pour orienter sa vue, modifier l'inclinaison pour définir l'angle de vue et définir 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 l'aperçu de l'itinéraire

Le paramètre de la caméra showRouteOverview affiche l'intégralité du parcours. Pour les trajets à destination multiples, ce mode affiche la partie non parcourue de l'itinéraire.

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

Paramètre "Niveau de détail élevé"

Lorsque le paramètre de niveau de détail élevé est activé, les contours des bâtiments 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 2D à mesure que l'utilisateur s'approche de sa destination.

L'exemple suivant active le paramètre "Niveau 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 2D.

  googleMap.followMyLocation(
              FollowMyLocationOptions.builder(CameraPerspective.TILTED)
                      .setZoomLevel(15.0f)
                      .build());

Étape suivante

Consultez Personnaliser l'interface utilisateur de Navigation pour savoir comment personnaliser la façon dont les utilisateurs interagissent avec votre carte en déterminant quels composants intégrés de l'interface utilisateur apparaissent sur la carte.