En la siguiente muestra de código, se indica cómo agregar un modelo 3D y posicionarlo en un espacio 3D llamando al método addModel. Para usar esta muestra de código, sigue las instrucciones que se indican en
Configuración y Agrega un mapa en 3D a tu
app para configurar tu
proyecto de Android Studio con un mapa en 3D básico. Luego, agrega el siguiente código al archivo MainActivity.kt:
// Add imports and define constants
import com.google.android.gms.maps3d.model.Map3DMode
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.setMapMode(Map3DMode.SATELLITE)
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
}
}
)
Cómo escuchar eventos de clic en modelos en 3D
Para escuchar eventos de clic en un modelo 3D, llama a setClickListener en el objeto del modelo. En el siguiente ejemplo, se muestra
cómo configurar un objeto de escucha de clics en un modelo en 3D:
model.setClickListener {
lifecycleScope.launch(Dispatchers.Main) {
Toast.makeText(this@ModelsActivity, "Model clicked", Toast.LENGTH_SHORT).show()
}
}
Ten en cuenta que el controlador de clics no se ejecuta en el subproceso principal (o de IU). Si quieres realizar cambios en la IU (como mostrar un mensaje de aviso), debes cambiar al subproceso principal. En Kotlin, puedes hacerlo con lifecycleScope.launch(Dispatchers.Main).