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
collisionBehavior
propriété sur l'une des valeurs suivantes :
REQUIRED: le repère doit toujours s'afficher, quelle que soit la collision.REQUIRED_AND_HIDES_OPTIONAL: le repère doit toujours s'afficher, quelle que soit la collision. Les repères dont le comportement en cas de collision estOPTIONAL_AND_HIDES_LOWER_PRIORITYou les libellés de carte par défaut qui chevauchent ce repère 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 dont l'ordre de dessin est 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 est affiché.
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 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
...
// 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
})