Puedes especificar cómo debe comportarse un marcador cuando colisiona con otro marcador o etiqueta del mapa configurando la propiedad collisionBehavior
en uno de los siguientes valores:
REQUIRED
: El marcador siempre debe mostrarse, independientemente de las superposiciones.REQUIRED_AND_HIDES_OPTIONAL
: El marcador siempre debe mostrarse, independientemente de las superposiciones. Los marcadores con comportamiento de colisiónOPTIONAL_AND_HIDES_LOWER_PRIORITY
y las etiquetas predeterminadas del mapa que se superpongan con este marcador se ocultarán.OPTIONAL_AND_HIDES_LOWER_PRIORITY
: 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 muestran todos los valores de comportamiento de colisión. Para usar este ejemplo de código, sigue las instrucciones en Configuración y Agrega un mapa en 3D a tu app para configurar tu proyecto de Android Studio con un mapa básico en 3D. 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 })