Ajouter un modèle 3D à une carte

Sélectionnez une plate-forme : Android iOS JavaScript

Modèle 3D sur une carte

L'exemple de code suivant montre comment ajouter un modèle 3D et le positionner dans l'espace 3D en appelant la méthode addModel. Pour utiliser cet exemple de code, suivez les instructions de Configuration et Ajouter une carte 3D à votre application pour configurer votre projet Android Studio avec une carte 3D de base. Ajoutez ensuite le code suivant au fichier 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
        }
    }
)

Écouter les événements de clic sur un modèle 3D

Pour écouter les événements de clic sur un modèle 3D, appelez setClickListener sur l'objet de modèle. L'exemple suivant montre comment définir un écouteur de clic sur un modèle 3D :

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

Notez que le gestionnaire de clics ne s'exécute pas sur le thread principal (ou de l'UI). Si vous souhaitez apporter des modifications à l'UI (par exemple, afficher un message Toast), vous devez passer au thread principal. Pour Kotlin, vous pouvez utiliser lifecycleScope.launch(Dispatchers.Main).