Configurar o comportamento em caso de conflito de marcadores

Selecione a plataforma: Android iOS JavaScript

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ão OPTIONAL_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
})