È possibile specificare il comportamento di un marcatore quando entra in collisione con un altro marcatore o un'etichetta della mappa impostando la proprietà collisionBehavior su uno dei seguenti valori:
REQUIRED: il marcatore deve essere sempre visualizzato, indipendentemente dalle collisioni.REQUIRED_AND_HIDES_OPTIONAL: il marcatore deve essere sempre visualizzato indipendentemente dalle collisioni. I marcatori con comportamento diOPTIONAL_AND_HIDES_LOWER_PRIORITYcollisione o le etichette della mappa predefinite che si sovrappongono a questo marcatore verranno nascoste.OPTIONAL_AND_HIDES_LOWER_PRIORITY: Il marcatore dovrebbe essere visualizzato solo se non si sovrappone ad altri marcatori. Se due marcatori di questo tipo si sovrappongono, viene mostrato quello con l'ordine di disegno più alto. Se hanno lo stesso ordine di disegno, viene mostrato quello con la posizione verticale più bassa sullo schermo.
Il seguente esempio di codice
mostra ciascuno dei valori del comportamento di collisione. Per utilizzare questo esempio di codice, segui le istruzioni in Configurazione e Aggiungi una mappa 3D alla tua app per configurare il tuo progetto Android Studio con una mappa 3D di base. Quindi, aggiungi il seguente codice al file MainActivity.kt:
// Add imports import com.google.android.gms.maps3d.model.latLngAltitude ... // Marker 1: REQUIRED googleMap3D.addMarker(markerOptions { position = latLngAltitude { latitude = 52.52027645136134 longitude = 13.408271658592406 altitude = 0.0 } label = "Collision Behavior: REQUIRED" altitudeMode = AltitudeMode.CLAMP_TO_GROUND isExtruded = true isDrawnWhenOccluded = true collisionBehavior = CollisionBehavior.REQUIRED }) // Marker 2: REQUIRED_AND_HIDES_OPTIONAL googleMap3D.addMarker(markerOptions { position = latLngAltitude { latitude = 52.519605780912585 longitude = 13.406867190588198 altitude = 150.0 } label = "Colliding Behavior: REQUIRED_AND_HIDES_OPTIONAL" altitudeMode = AltitudeMode.ABSOLUTE isExtruded = true isDrawnWhenOccluded = true collisionBehavior = CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL }) // Marker 3: OPTIONAL_AND_HIDES_LOWER_PRIORITY googleMap3D.addMarker(markerOptions { position = latLngAltitude { latitude = 52.519882191069016 longitude = 13.407410777254293 altitude = 50.0 } label = "Colliding Behavior: OPTIONAL_AND_HIDES_LOWER_PRIORITY" altitudeMode = AltitudeMode.RELATIVE_TO_GROUND isExtruded = true isDrawnWhenOccluded = true collisionBehavior = CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY })