Configura el comportamiento de colisión de los marcadores

Selecciona la plataforma: Android iOS JavaScript

Puedes especificar cómo debe comportarse un marcador cuando colisiona con otro marcador o etiqueta del mapa. Para ello, establece la collisionBehavior propiedad en uno de los siguientes valores:

  • REQUIRED: Indica que el marcador siempre debe mostrarse, independientemente de las colisiones.
  • REQUIRED_AND_HIDES_OPTIONAL: Indica que el marcador siempre debe mostrarse, independientemente de las colisiones. Se ocultarán los marcadores con el comportamiento de colisión OPTIONAL_AND_HIDES_LOWER_PRIORITY o las etiquetas de mapa predeterminadas que se superpongan con este marcador.
  • OPTIONAL_AND_HIDES_LOWER_PRIORITY: Indica que el marcador solo debe mostrarse si no se superpone con otros. Si dos marcadores de este tipo se superponen, se mostrará el que tenga el orden de dibujo más alto. Si tienen el mismo orden de dibujo, se mostrará el que tenga la posición vertical más baja en la pantalla.

En el siguiente ejemplo de código, se muestra cada uno de los valores de comportamiento de colisión. Para usar este ejemplo de código, sigue las instrucciones que se indican en Configura y agrega un mapa 3D a tu app para configurar tu proyecto de Android Studio con un mapa 3D básico. Luego, agrega el siguiente código al archivo 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
})