Agrega un modelo 3D a un mapa

Selecciona la plataforma: Android iOS JavaScript

Un modelo 3D en un mapa

En el siguiente ejemplo de código, se muestra cómo agregar un modelo 3D y posicionarlo en el espacio 3D llamando al método addModel. Para usar este ejemplo de código, sigue las instrucciones en Configuración y Agrega un mapa en 3D a tu app para configurar tu proyecto de Android Studio con un mapa básico en 3D. Luego, agrega el siguiente código al archivo 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
        }
    }
)

Detecta eventos de clic en modelos 3D

Para escuchar los 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 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 deseas realizar cambios en la IU (por ejemplo, mostrar un mensaje Toast), debes cambiar al subproceso principal. En Kotlin, puedes hacerlo con lifecycleScope.launch(Dispatchers.Main).