Das folgende Codebeispiel zeigt, wie Sie ein 3D-Modell hinzufügen und es im 3D-Raum positionieren, indem Sie die Methode addModel aufrufen. Wenn Sie dieses Codebeispiel verwenden möchten, folgen Sie der Anleitung unter Einrichtung und 3D-Karte in Ihre App einfügen, um Ihr Android Studio-Projekt mit einer einfachen 3D-Karte einzurichten. Fügen Sie dann den folgenden Code in die Datei MainActivity.kt ein:
// 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 } } )
Auf Klickereignisse für 3D-Modelle warten
Wenn Sie auf Click-Events für ein 3D-Modell warten möchten, rufen Sie setClickListener für das Modellobjekt auf. Im folgenden Beispiel wird gezeigt, wie Sie einen Klick-Listener für ein 3D-Modell festlegen:
model.setClickListener { lifecycleScope.launch(Dispatchers.Main) { Toast.makeText(this@ModelsActivity, "Model clicked", Toast.LENGTH_SHORT).show() } }
Der Klick-Handler wird nicht im Main-Thread (oder UI-Thread) ausgeführt. Wenn Sie Änderungen an der Benutzeroberfläche vornehmen möchten, z. B. eine Toast-Meldung anzeigen, müssen Sie zum Hauptthread wechseln. In Kotlin können Sie dazu lifecycleScope.launch(Dispatchers.Main) verwenden.