Sesuaikan kamera

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

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

  • Dipasang ke lokasi (GoogleMap.animateCamera dan GoogleMap.moveCamera) — Memperbaiki kamera di lokasi tertentu. Saat menggunakan mode ini, Anda dapat menetapkan lokasi kamera beserta properti kamera lainnya seperti bearing, kemiringan, zoom, dll. Saat tampilan ini dipilih dan Navigator telah diinisialisasi, tombol Pusatkan ulang akan terlihat.

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

Mengklik tombol Pusatkan ulang akan menyetel kamera ke mode followMyLocation.

Ikuti mode lokasi saya

Setelan kamera yang paling umum adalah menyetel kamera ke perangkat atau kendaraan, yang menampilkan posisinya saat ini dalam perjalanan. Dalam mode kamera ini, Anda dapat melihat rute dengan mobil yang selalu mengarah ke atas layar dengan perspektif miring (CameraPerspective.TILTED), atau Anda dapat melihat mobil yang melaju ke utara (CameraPerspective.TOP_DOWN_NORTH_UP) atau dengan arah (CameraPerspective.TOP_DOWN_HEADING_UP) selalu 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 paling besar atas kamera. Dalam mode ini, Anda menempatkan kamera di lokasi tertentu, menetapkan arah 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));

Menampilkan mode ringkasan rute

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

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

Setelan detail tinggi

Jika setelan detail tinggi diaktifkan, garis batas bangunan 2D 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 cukup untuk menampilkan garis batas bangunan 2D saat pengguna mendekati tujuan mereka.

Contoh ini mengaktifkan setelan detail tinggi:

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

Contoh berikut mengganti tingkat zoom kamera selama navigasi. Tingkat zoom ditetapkan 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 Anda dengan menentukan komponen UI bawaan yang muncul di peta.