Questa pagina mostra come gestire le collisioni tra gli indicatori che aggiungi alla mappa e le etichette predefinite, come i punti d'interesse (PDI) o i nomi delle strade.
Prima di iniziare
Per gestire le collisioni di indicatori ed etichette, devi utilizzare un ID mappa.
Se utilizzi un'immagine bitmap di una mappa tramite la modalità Lite, non puoi gestire le collisioni di indicatori ed etichette.Specifica delle priorità degli indicatori
Utilizza Marker.CollisionBehavior per specificare la priorità di un indicatore.
Usa uno dei seguenti valori:
REQUIRED- Predefinito. Richiede la visualizzazione di un indicatore che si sovrappone ad altri indicatori, etichette e PDI.OPTIONAL_AND_HIDES_LOWER_PRIORITY: indica che l'indicatore potrebbe essere sostituito o sovrapposto da un indicatore obbligatorio oppure sostituito da un indicatoreOPTIONAL_AND_HIDES_LOWER_PRIORITYcon priorità più alta. UtilizzazIndexper determinare la priorità relativa tra gli indicatoriOPTIONAL_AND_HIDES_LOWER_PRIORITY. Un valorezIndexpiù alto indica una priorità più alta.REQUIRED_AND_HIDES_OPTIONAL: richiede la visualizzazione di un indicatore nascondendo eventuali indicatori, etichette o PDIOPTIONAL_AND_HIDES_LOWER_PRIORITYche si sovrappongono all'indicatore. L'indicatore potrebbe sovrapporsi ad altri indicatori obbligatori.
L'esempio di codice seguente 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);