Pengguna dapat mengontrol zoom, kemiringan, posisi, dan rotasi kamera menggunakan gestur pada peta. Anda juga dapat mengonfigurasi kamera secara terprogram.

Posisi Kamera
Tampilan peta dimodelkan sebagai kamera yang melihat ke titik tertentu di ruang. Posisi dan orientasi kamera ditentukan oleh koordinat lintang/bujur/ketinggian (ditentukan sebagai "pusat", tempat kamera mengarah), arah, kemiringan, rentang, dan rotasi.
Pusat (lintang, bujur, ketinggian)
center menentukan titik tertentu dalam ruang 3D yang diamati kamera. Hal ini ditentukan menggunakan class
LatLngAltitude, yang menggabungkan nilai untuk lintang, bujur, dan ketinggian. Dengan demikian,
Anda dapat memosisikan titik fokus kamera dalam tiga dimensi.
Garis lintang berkisar antara -90 dan 90 derajat, inklusif. Rentang bujur
antara -180 dan 180 derajat, inklusif. Ketinggian ditentukan dalam meter,
dan cara penafsiran ketinggian ditentukan oleh
altitudeMode
kamera
(AltitudeMode.ABSOLUTE
secara default,
AltitudeMode.RELATIVE_TO_GROUND,
atau
AltitudeMode.RELATIVE_TO_MESH).
Judul
Heading menentukan arah kompas peta, yang diukur dalam derajat searah jarum jam dari Utara sejati. Utara sesuai dengan 0 derajat, Timur dengan 90 derajat, Selatan dengan 180 derajat, dan Barat dengan 270 derajat.
Kemiringan
Kemiringan menentukan sudut kamera terhadap sumbu vertikal, yang diukur dalam derajat. Kemiringan 0 derajat berarti kamera mengarah tepat ke bawah ke arah Bumi (titik nadir). Kemiringan 90 derajat berarti kamera diarahkan secara horizontal ke arah yang ditentukan oleh arah.
Rentang
Rentang menentukan jarak dalam meter antara posisi kamera itu sendiri dan pusat peta. Rentangnya dapat bervariasi dari nol meter (sangat dekat) hingga enam puluh tiga juta meter, sehingga memungkinkan tampilan dari sangat dekat hingga perspektif yang benar-benar global. Hal ini secara efektif mengontrol seberapa "diperbesar" atau "diperkecil" tampilan peta.
Putar
Roll menetapkan sudut kamera terhadap cakrawala, yang diukur dalam derajat. Parameter ini dapat digunakan untuk membuat efek seperti banking selama simulasi penerbangan atau bahkan barrel roll penuh, yang memutar kamera di sekitar sumbu tampilannya.
Mengontrol kamera
Contoh kode berikut menunjukkan cara mengontrolCamera
secara terprogram dengan memanggil metode
setCamera
pada
GoogleMap3D.
Untuk menggunakan contoh kode ini, ikuti petunjuk di bagian
Penyiapan dan Menambahkan peta 3D ke
aplikasi untuk menyiapkan
project Android Studio dengan peta 3D dasar. Kemudian, tambahkan kode berikut ke file MainActivity.kt:
// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.camera
import com.google.android.gms.maps3d.model.latLngAltitude
// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.setCamera(
camera {
center = latLngAltitude {
latitude = 38.743502
longitude = -109.499374
altitude = 1467.0
}
heading = 350.0
tilt = 58.1
range = 138.2
roll = 0.0
}
)
Kontrol UI
Selain gestur standar, Maps 3D SDK for Android juga menyediakan kontrol UI untuk memanipulasi posisi kamera.
- Kontrol zoom menampilkan tombol "+" dan "-" untuk mengubah tingkat zoom peta.
- Kontrol pindah menampilkan tombol "←", "→", "↑", dan "↓" untuk mengubah pusat peta.
- Kontrol putar menampilkan "↺" dan "↻" untuk mengubah arah kamera.
- Kontrol kemiringan menampilkan "^" dan "⌄" untuk mengubah kemiringan kamera.
- Kontrol kompas menunjukkan arah utara kompas, dan memungkinkan untuk mereset kamera ke arah utara.
Contoh kode berikut menunjukkan cara mengubah visibilitas kontrol UI:
```kotlin // Tambahkan impor import com.google.android.gms.maps3d.UiControlSettings import com.google.android.gms.maps3d.model.CompassControl import com.google.android.gms.maps3d.model.TiltControl import com.google.android.gms.maps3d.model.ZoomControl</p> <p>...</p> <p>val uiControlSettings = googleMap3D.getUiControlSettings()</p> <p>// Tampilkan kontrol UI di tepi akhir peta uiControlSettings?.setUiControlsPlacement( listOf(CompassControl(), ZoomControl(), TiltControl()), UiControlSettings.ControlPlacement.TRAILING )</p> <p>// Sembunyikan kontrol UI di tepi akhir peta uiControlSettings?.setUiControlsPlacement( emptyList(), UiControlSettings.ControlPlacement.TRAILING )