Menambahkan model 3D ke peta

Pilih platform: Android iOS JavaScript

Model 3D di peta

Contoh kode berikut menunjukkan cara menambahkan model 3D dan memosisikannya dalam ruang 3D dengan memanggil metode addModel. Untuk menggunakan contoh kode ini, ikuti petunjuk di Penyiapan dan Menambahkan peta 3D ke aplikasi Anda untuk menyiapkan project Android Studio dengan peta 3D dasar. Kemudian, tambahkan kode berikut ke file MainActivity.kt:

// Add imports and define constants
import com.google.android.gms.maps3d.model.latLngAltitude
val PLANE_URL = "https://storage.googleapis.com/gmp-maps-demos/p3d-map/assets/Airplane.glb"
val PLANE_SCALE = 0.05

// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setCamera(
   camera {
        center = latLngAltitude {
            latitude = 47.133971
            longitude = 11.333161
            altitude = 2200.0
        }
        heading = 221.0
        tilt = 65.0
        range = 1_200.0
    }
)

googleMap3D.addModel(
    modelOptions {
        id = "plane_model"
        position = latLngAltitude {
            latitude = 47.133971
            longitude = 11.333161
            altitude = 2200.0
        }
        altitudeMode = AltitudeMode.ABSOLUTE
        orientation = orientation {
            heading = 41.5
            tilt = -90.0
            roll = 0.0
        }
        url = PLANE_URL
        scale = vector3D {
            x = PLANE_SCALE
            y = PLANE_SCALE
            z = PLANE_SCALE
        }
    }
)

Memproses peristiwa klik model 3D

Untuk memproses peristiwa klik pada model 3D, panggil setClickListener pada objek model. Contoh berikut menunjukkan cara menyetel pemroses klik pada model 3D:

model.setClickListener {
    lifecycleScope.launch(Dispatchers.Main) {
        Toast.makeText(this@ModelsActivity, "Model clicked", Toast.LENGTH_SHORT).show()
    }
}

Perhatikan bahwa pengendali klik tidak berjalan di thread Utama (atau UI). Jika Anda ingin melakukan perubahan pada UI (seperti menampilkan pesan Toast), Anda harus beralih ke thread Utama. Untuk Kotlin, Anda dapat melakukannya menggunakan lifecycleScope.launch(Dispatchers.Main).