Puoi specificare il comportamento di un indicatore quando entra in collisione con un altro indicatore 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_PRIORITY
collisione o le etichette della mappa predefinite che si sovrappongono a questo marcatore verranno nascoste.OPTIONAL_AND_HIDES_LOWER_PRIORITY
: il marcatore deve essere visualizzato solo se non si sovrappone ad altri marcatori. Se due indicatori di questo tipo si sovrappongono, viene visualizzato quello con l'ordine di disegno più alto. Se hanno lo stesso ordine di disegno, viene mostrato quello con la posizione verticale dello schermo più bassa.
Il seguente esempio di codice
mostra ciascuno dei valori del comportamento di collisione. Per utilizzare questo esempio di codice, segui le istruzioni riportate in
Configurazione e
Aggiungere una mappa 3D all'app per configurare
il progetto Android Studio con una mappa 3D di base. Poi, 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 })