Configurer le comportement en cas de collision des repères

Sélectionnez une plate-forme : Android iOS JavaScript

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 sur OPTIONAL_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
})