Você pode especificar como um marcador deve se comportar quando entrar em conflito com outro marcador ou rótulo de mapa definindo a propriedade collisionBehavior
como um dos seguintes valores:
REQUIRED
: o marcador sempre precisa ser mostrado, independentemente de colisões.REQUIRED_AND_HIDES_OPTIONAL
: o marcador sempre será mostrado, independentemente de colisões. Os marcadores com comportamento de colisãoOPTIONAL_AND_HIDES_LOWER_PRIORITY
ou os rótulos padrão do mapa que se sobrepõem a esse marcador serão ocultados.OPTIONAL_AND_HIDES_LOWER_PRIORITY
: o marcador só deve ser mostrado se não se sobrepuser a outros. Em caso de conflito, o marcador com a ordem de desenho mais alta vai aparecer. Se eles tiverem a mesma ordem de exibição, aquele com a posição vertical mais abaixo na tela será mostrado.
O exemplo de código a seguir demonstra cada um dos valores de comportamento de colisão. Para usar este exemplo de código, siga as instruções em
Configuração e
Adicionar um mapa 3D ao seu app para configurar
seu projeto do Android Studio com um mapa 3D básico. Em seguida, adicione o seguinte código ao arquivo
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 })