Questa pagina mostra come gestire le collisioni tra gli indicatori aggiunti alla mappa e le etichette predefinite, ad esempio i PDI (punti di interesse) o i nomi delle strade.
Prima di iniziare
Per gestire le collisioni di indicatori ed etichette, devi utilizzare un ID mappa.
Se utilizzi l'immagine bitmap di una mappa in modalità Lite, non puoi gestire i collisioni tra indicatori ed etichette.Specifica delle priorità degli indicatori
Utilizza Marker
.CollisionBehavior
per specificare la priorità su una
indicatore.
Usa uno dei seguenti valori:
REQUIRED
: predefinita. Richiede la visualizzazione di un indicatore che si sovrappone ad altri indicatori, etichette e PDI.OPTIONAL_AND_HIDES_LOWER_PRIORITY
. Indica che l'indicatore può essere sostituito o sovrapposto a un indicatore obbligatorio o sostituito daOPTIONAL_AND_HIDES_LOWER_PRIORITY
l'indicatore con priorità più alta. UtilizzazIndex
per determinare la priorità relativa tra gli indicatoriOPTIONAL_AND_HIDES_LOWER_PRIORITY
. Un valore dizIndex
più alto indica una priorità più elevata.REQUIRED_AND_HIDES_OPTIONAL
: richiede la visualizzazione di un indicatore mentre è nascosto qualsiasi indicatore, etichetta o PDI diOPTIONAL_AND_HIDES_LOWER_PRIORITY
che si sovrappongono indicatore. L'indicatore potrebbe sovrapporsi ad altri indicatori obbligatori.
Il seguente codice di esempio mostra l'impostazione di CollisionBehavior
per un nuovo 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);