Im folgenden Codebeispiel wird gezeigt, wie einer 3D-Karte eine einfache Markierung hinzugefügt wird, indem die Methode addMarker aufgerufen wird. 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 import com.google.android.gms.maps3d.model.latLngAltitude ... // Add to the onMap3DViewReady method, after the googleMap3D object has been initialized googleMap3D.setMapMode(Map3DMode.SATELLITE) googleMap3D.setCamera( camera { center = latLngAltitude { latitude = 52.51974795 longitude = 13.40715553 altitude = 150.0 } heading = 252.7 tilt = 79.0 range = 1500.0 } ) // Add a marker using absolute altitude positioning googleMap3D.addMarker(markerOptions { position = latLngAltitude { latitude = 52.519605780912585 longitude = 13.406867190588198 altitude = 150.0 } label = "Absolute (150m)" altitudeMode = AltitudeMode.ABSOLUTE isExtruded = true isDrawnWhenOccluded = true collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL })
Auf Click-Events für Markierungen warten
Wenn Sie auf Click-Events für eine Markierung reagieren möchten, rufen Sie setClickListener für das Markierungsobjekt auf. Im folgenden Beispiel wird gezeigt, wie Sie einen Klick-Listener für eine Markierung festlegen:
marker.setClickListener { lifecycleScope.launch(Dispatchers.Main) { Toast.makeText(this@MarkersActivity, "Clicked on marker: ${marker.label}", 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.