Questa pagina mostra come controllare il comportamento della sovrapposizione per un indicatore.
Imposta il comportamento della sovrapposizione per un indicatore
Il comportamento della sovrapposizione controlla il modo in cui un indicatore viene visualizzato se si sovrappone a un altro indicatore. Il modo in cui crei un indicatore avanzato determina il funzionamento del comportamento della sovrapposizione:
Gli indicatori avanzati creati utilizzando
BitmapDescriptorFactorysono chiamati indicatori bitmap. Questi indicatori vengono disegnati dalla mappa di base.Tutti gli altri indicatori avanzati, inclusi quelli creati utilizzando il metodo
AdvancedMarkerOptions.iconView(), sono definiti indicatori view e vengono disegnati su un livello sopra la mappa di base.
Per impostare il comportamento della sovrapposizione, imposta
AdvancedMarkerOptions.collisionBehavior
su uno dei seguenti valori:
CollisionBehavior.REQUIRED: (predefinito) mostra sempre l'indicatore indipendentemente dalla collisione.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONALMostra sempre l'indicatore indipendentemente dalla collisione e nascondi eventuali indicatori o etichetteOPTIONAL_AND_HIDES_LOWER_PRIORITYche si sovrapporrebbero all'indicatore.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITYMostra l'indicatore solo se non si sovrappone ad altri indicatori.Se due indicatori bitmap si sovrappongono, viene mostrato quello con il valore
zIndexpiù alto. Se hanno lo stessozIndex, viene mostrato quello con la posizione verticale dello schermo più bassa. Per ulteriori informazioni suzIndex, consulta Z-index dell'indicatore.Se due indicatori di visualizzazione si sovrappongono, viene mostrato quello con il valore
zIndexpiù alto. Se hanno lo stessozIndex, l'ultimo indicatore creato si sovrappone a tutti gli indicatori creati in precedenza.Poiché gli indicatori view vengono disegnati su un livello sopra gli indicatori bitmap, gli indicatori view si sovrappongono agli indicatori bitmap. Pertanto, per un migliore controllo delle collisioni, dovresti provare a utilizzare indicatori dello stesso tipo.
L'esempio seguente mostra come impostare il comportamento della sovrapposizione 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);