L'exemple de code suivant montre comment ajouter un repère de base à une carte 3D en
appelant la addMarker
méthode. Pour utiliser cet exemple de code, suivez les instructions de la section
Configurer et ajouter une carte 3D à votre application
afin de configurer votre projet Android Studio avec une carte 3D de base. Ajoutez ensuite le code suivant au fichier 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
})
Écouter les événements de clic sur les repères
Pour écouter les événements de clic sur un repère, appelez setClickListener sur l'objet repère. L'exemple suivant montre comment définir un écouteur de clic sur un repère :
marker.setClickListener {
lifecycleScope.launch(Dispatchers.Main) {
Toast.makeText(this@MarkersActivity, "Clicked on marker: ${marker.label}", Toast.LENGTH_SHORT)
.show()
}
}
Notez que le gestionnaire de clics ne s'exécute pas sur le thread principal (ou d'interface utilisateur). Si vous souhaitez apporter des modifications à l'interface utilisateur (par exemple, afficher un message Toast), vous devez passer au thread principal. Pour Kotlin, vous pouvez le faire à l'aide de lifecycleScope.launch(Dispatchers.Main).