Sesuaikan kamera

Kamera memungkinkan Anda mengubah sudut pandang pengguna terhadap peta. Anda dapat menggunakan mode kamera untuk mengontrol perilaku tampilan peta selama navigasi. Untuk menyetel mode kamera, panggil salah satu metode berikut yang terkait dengan kamera:

  • Ikuti lokasi saya (GoogleMap.followMyLocation) — Mode kamera default untuk navigasi. Mode ini menyetel kamera ke perangkat atau kendaraan. Selama navigasi, kamera otomatis menghadap ke arah perjalanan. Jika setelan detail tinggi diaktifkan (NavigationMapStyle.HIGH_DETAIL), garis luar bangunan 2D akan ditampilkan saat tingkat zoom adalah 19 atau lebih tinggi.

  • Disematkan ke lokasi (GoogleMap.animateCamera dan GoogleMap.moveCamera) — Memperbaiki kamera di lokasi tertentu. Saat menggunakan mode ini, Anda dapat menyetel lokasi kamera beserta properti kamera lainnya seperti bearing, kemiringan, zoom, dll. Setelah tampilan ini dipilih dan Navigator telah diinisialisasi, tombol Re-center akan terlihat.

  • Tampilkan ringkasan rute (NavigationView.showRouteOverview atau SupportNavigationFragment.showRouteOverview) — Menampilkan ringkasan rute yang tersisa, menggeser, dan melakukan zoom sesuai kebutuhan agar sesuai dengan rute dengan tampilan peta. Saat tampilan ini dipilih, tombol Pusatkan lagi akan terlihat.

Mengklik tombol Pusatkan lagi akan menyetel kamera ke mode followMyLocation.

Ikuti mode lokasi saya

Setelan kamera yang paling umum adalah menyetel kamera ke perangkat atau kendaraan, yang menunjukkan posisinya saat ini dalam perjalanan. Dalam mode kamera ini, Anda dapat melihat rute dengan mobil yang selalu menghadap ke atas layar dengan perspektif miring (CameraPerspective.TILTED), atau Anda dapat melihat mobil melaju ke arah utara (CameraPerspective.TOP_DOWN_NORTH_UP) atau dengan arah (CameraPerspective.TOP_DOWN_HEADING_UP) selalu berada di bagian atas layar.

Fragmen kode berikut menggunakan perspektif TILTED:

// Set the camera to follow the device (vehicle):
mNavFragment.getMapAsync(googleMap -> googleMap.followMyLocation(CameraPerspective.TILTED))

Disematkan ke mode lokasi

Mode Pinned memberi Anda kontrol kamera paling besar. Dalam mode ini, Anda menempatkan kamera di lokasi tertentu, menetapkan bearing untuk mengorientasikan tampilan kamera, mengubah kemiringan untuk menetapkan sudut pandang, dan menetapkan tingkat zoom kamera.

Cuplikan kode berikut menunjukkan beberapa cara umum untuk menggerakkan kamera.

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));

Tampilkan mode ringkasan rute

Setelan kamera showRouteOverview menampilkan seluruh perjalanan. Untuk perjalanan beberapa tujuan, mode ini menampilkan bagian rute yang tidak pernah dilalui.

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

Setelan detail tinggi

Jika setelan detail tinggi diaktifkan, garis luar bangunan 2-D akan ditampilkan saat tingkat zoom kamera disetel ke 19 atau lebih tinggi. Anda dapat mengganti tingkat zoom selama navigasi menggunakan objek FollowMyLocationOptions. Hal ini memungkinkan Anda meningkatkan tingkat zoom yang cukup untuk menampilkan garis luar bangunan 2D saat pengguna mendekati tujuannya.

Contoh ini memungkinkan setelan detail tinggi:

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

Contoh berikut mengganti tingkat zoom kamera selama navigasi. Tingkat zoom disetel ke 15, yang cukup tinggi untuk menampilkan garis batas bangunan 2D.

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

Langkah berikutnya

Lihat Menyesuaikan UI Navigasi untuk mempelajari cara menyesuaikan cara pengguna berinteraksi dengan peta dengan menentukan komponen UI bawaan mana yang akan muncul pada peta.