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. Come creare indicatori avanzati determina il funzionamento delle collisioni:

  • Indicatori avanzati creati con BitmapDescriptorFactory sono definiti indicatori bitmap. Questi indicatori sono tracciati la mappa di base.

  • Tutti gli altri indicatori avanzati, compresi quelli creati usando il metodo AdvancedMarkerOptions.iconView(), vengono definite visualizza gli indicatori e sono disegnati su un livello sopra la mappa principale.

Per impostare il comportamento della collisione, imposta AdvancedMarkerOptions.collisionBehavior a uno dei seguenti:

  • CollisionBehavior.REQUIRED: (predefinito) viene sempre visualizzato l'indicatore indipendentemente della collisione.
  • CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL Visualizza sempre l'indicatore indipendentemente dalla collisione e nascondi eventuali OPTIONAL_AND_HIDES_LOWER_PRIORITY indicatori o etichette che si sovrappongono all'indicatore.
  • CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY Mostra l'indicatore solo se non si sovrappone ad altri indicatori.

    • Se due indicatori bitmap si sovrappongono, quello con il zIndex più alto è come mostrato nell'immagine. Se ha lo stesso zIndex, quello con lo schermo verticale inferiore viene mostrata la posizione. Per ulteriori informazioni su zIndex, consulta l'articolo sull'indicatore z-index.

    • Se due indicatori di visualizzazione si sovrappongono, quello con il valore zIndex più alto è come mostrato nell'immagine. 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 agli indicatori bitmap. Pertanto, devi provare a utilizzare indicatori dello stesso tipo per un migliore controllo delle 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);