Vous pouvez spécifier comment un repère doit se comporter en cas de collision avec un autre repère ou libellé de carte en définissant la propriété collisionBehavior
sur l'une des valeurs suivantes :
REQUIRED
: le repère doit toujours être affiché, quelle que soit la collision.REQUIRED_AND_HIDES_OPTIONAL
: le repère doit toujours être affiché, quelle que soit la collision. Les libellés de carte par défaut qui se chevauchent avec les repères dont le comportement de collision est défini surOPTIONAL_AND_HIDES_LOWER_PRIORITY
seront masqués.OPTIONAL_AND_HIDES_LOWER_PRIORITY
: le repère ne doit s'afficher que s'il n'en chevauche pas d'autres. Si deux repères de ce type se chevauchent, celui avec l'ordre de dessin le plus élevé est affiché. S'ils ont le même ordre de dessin, celui dont la position verticale à l'écran est la plus basse s'affiche.
L'exemple de code suivant illustre chacune des valeurs de comportement en cas de collision. 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 import com.google.android.gms.maps3d.model.latLngAltitude ... // Marker 1: REQUIRED googleMap3D.addMarker(markerOptions { position = latLngAltitude { latitude = 52.52027645136134 longitude = 13.408271658592406 altitude = 0.0 } label = "Collision Behavior: REQUIRED" altitudeMode = AltitudeMode.CLAMP_TO_GROUND isExtruded = true isDrawnWhenOccluded = true collisionBehavior = CollisionBehavior.REQUIRED }) // Marker 2: REQUIRED_AND_HIDES_OPTIONAL googleMap3D.addMarker(markerOptions { position = latLngAltitude { latitude = 52.519605780912585 longitude = 13.406867190588198 altitude = 150.0 } label = "Colliding Behavior: REQUIRED_AND_HIDES_OPTIONAL" altitudeMode = AltitudeMode.ABSOLUTE isExtruded = true isDrawnWhenOccluded = true collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL }) // Marker 3: OPTIONAL_AND_HIDES_LOWER_PRIORITY googleMap3D.addMarker(markerOptions { position = latLngAltitude { latitude = 52.519882191069016 longitude = 13.407410777254293 altitude = 50.0 } label = "Colliding Behavior: OPTIONAL_AND_HIDES_LOWER_PRIORITY" altitudeMode = AltitudeMode.RELATIVE_TO_GROUND isExtruded = true isDrawnWhenOccluded = true collisionBehavior = CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY })