Puoi specificare il comportamento di un indicatore quando entra in collisione con un altro
indicatore o con un'etichetta della mappa impostando la
collisionBehavior
proprietà su uno dei seguenti valori:
REQUIRED: l'indicatore deve essere sempre visualizzato, indipendentemente dalle collisioni.REQUIRED_AND_HIDES_OPTIONAL: l'indicatore deve essere sempre visualizzato, indipendentemente dalle collisioni. Gli indicatori con comportamento della sovrapposizioneOPTIONAL_AND_HIDES_LOWER_PRIORITYo le etichette della mappa predefinite che si sovrappongono a questo indicatore 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 visualizzato 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 di comportamento della sovrapposizione. Per
utilizzare questo esempio di codice, segui le istruzioni riportate in
Configurare e aggiungere una mappa 3D alla tua
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
})