Comportamento di collisione

Seleziona la piattaforma: Android iOS JavaScript

Questa pagina mostra come controllare il comportamento della collisione di un indicatore.

Imposta il comportamento della collisione per un indicatore

Il comportamento della collisione controlla la modalità di visualizzazione di un indicatore in caso di collisione (sovrapposizione) con un altro indicatore. Il modo in cui crei gli indicatori avanzati determina il funzionamento delle collisioni:

  • Gli indicatori avanzati creati utilizzando BitmapDescriptorFactory sono denominati indicatori bitmap. Questi indicatori sono tracciati dalla mappa di base.

  • Tutti gli altri indicatori avanzati, inclusi quelli creati utilizzando il metodo AdvancedMarkerOptions.iconView(), sono chiamati indicatori visualizza e sono disegnati su un livello sopra la mappa principale.

Per impostare il comportamento della collisione, imposta AdvancedMarkerOptions.collisionBehavior su una delle seguenti opzioni:

  • CollisionBehavior.REQUIRED (predefinito): visualizza sempre l'indicatore indipendentemente dalla collisione.
  • CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL Visualizza sempre l'indicatore indipendentemente dalla collisione e nascondi tutti gli indicatori OPTIONAL_AND_HIDES_LOWER_PRIORITY o le etichette che si sovrappongono all'indicatore.
  • CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY Visualizza l'indicatore solo se non si sovrappone ad altri indicatori.

    • Se due indicatori bitmap si sovrappongono, viene mostrato quello con il zIndex più alto. Se hanno lo stesso zIndex, viene mostrato quello con la posizione verticale inferiore dello schermo. Per maggiori informazioni su zIndex, consulta la sezione z-index degli indicatori.

    • Se due indicatori di visualizzazione si sovrappongono, viene mostrato quello con il zIndex più alto. Se hanno lo stesso zIndex, l'ultimo indicatore creato si sovrappone a qualsiasi indicatore creato prima.

    • Poiché gli indicatori di visualizzazione sono disegnati su un livello sopra gli indicatori bitmap, gli indicatori di visualizzazione si sovrappongono a quelli di bitmap. Ti consigliamo quindi di utilizzare gli indicatori dello stesso tipo per controllare meglio le collisioni.

L'esempio seguente mostra l'impostazione del comportamento della collisione per un indicatore:

Kotlin

// Collision behavior can only be changed in the AdvancedMarkerOptions object.
// Changes to collision behavior after a marker has been created are not possible
val collisionBehavior: Int = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions()
    .position(latLng)
    .collisionBehavior(collisionBehavior)
val marker: Marker = map.addMarker(advancedMarkerOptions)

Java

// Collision behavior can only be changed in the AdvancedMarkerOptions object.
// Changes to collision behavior after a marker has been created are not possible
int collisionBehavior = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL;
AdvancedMarkerOptions options =
        new AdvancedMarkerOptions()
            .position(latLng)
            .collisionBehavior(collisionBehavior);
Marker marker = map.addMarker(options);