Mengonfigurasi kontrol kamera

Pilih platform: Android iOS JavaScript

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

Diagram yang mengilustrasikan model kamera 3D

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 mengontrol Camera 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 )