Questa pagina mostra come controllare il comportamento di collisione di un indicatore.
Impostare il comportamento di 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, inclusi quelli creati utilizzando il metodo
AdvancedMarkerOptions.iconView()
, sono chiamati indicatori di visualizzazione e vengono 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
Mostra sempre l'indicatore indipendentemente dalle collisioni e nascondi eventualiOPTIONAL_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, viene visualizzato quello con il valore
zIndex
più elevato. Se ha lo stessozIndex
, quello con lo schermo verticale inferiore viene mostrata la posizione. Per ulteriori informazioni suzIndex
, consulta Indici z degli indicatori.Se due indicatori di visualizzazione si sovrappongono, quello con il valore
zIndex
più alto è come mostrato nell'immagine. Se hanno lo stessozIndex
, l'ultimo indicatore creato sovrappone tutti gli indicatori creati 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 di 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 = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions() .position(LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior) val marker: Marker = map.addMarker(advancedMarkerOptions) ?: error("Failed to add marker")
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(new LatLng(10.0, 10.0)) .collisionBehavior(collisionBehavior); Marker marker = map.addMarker(options);