Il seguente esempio di codice mostra come aggiungere un indicatore di base a una mappa 3D chiamando il metodo addMarker. Per utilizzare questo esempio di codice, segui le istruzioni riportate in
Configurazione e Aggiungere una mappa 3D all'app
per configurare il progetto Android Studio con una mappa 3D di base. Poi, aggiungi il
seguente codice al file MainActivity.kt:
// 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 })
Ascolta gli eventi di clic sui marcatori
Per rilevare gli eventi di clic su un indicatore, chiama setClickListener sull'oggetto indicatore. Il seguente esempio mostra come impostare un listener dei clic su un
indicatore:
marker.setClickListener { lifecycleScope.launch(Dispatchers.Main) { Toast.makeText(this@MarkersActivity, "Clicked on marker: ${marker.label}", Toast.LENGTH_SHORT) .show() } }
Tieni presente che il gestore dei clic non viene eseguito sul thread principale (o UI). Se vuoi apportare modifiche all'UI (ad esempio mostrare un messaggio di notifica), devi passare al thread principale. Per Kotlin, puoi farlo utilizzando
lifecycleScope.launch(Dispatchers.Main).