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 conOPTIONAL_AND_HIDES_LOWER_PRIORITYcomportamento di collisione o le etichette della mappa predefinite che si sovrappongono a questo marcatore verranno nascosti.OPTIONAL_AND_HIDES_LOWER_PRIORITY: l'indicatore deve essere visualizzato solo se non si sovrappone ad altri indicatori. Se due indicatori di questo tipo si sovrappongono, viene mostrato quello con l'ordine di disegno più alto. Se hanno lo stesso ordine di disegno, viene visualizzato 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
})