Możesz określić, jak znacznik ma się zachowywać, gdy zderzy się z innym znacznikiem lub etykietą mapy. W tym celu ustaw właściwość collisionBehavior
na jedną z tych wartości:
REQUIRED
: znacznik powinien być zawsze wyświetlany niezależnie od kolizji.REQUIRED_AND_HIDES_OPTIONAL
: znacznik powinien być zawsze wyświetlany niezależnie od kolizji. Markery zOPTIONAL_AND_HIDES_LOWER_PRIORITY
zachowaniem kolizji lub domyślne etykiety mapy, które nakładają się na ten marker, zostaną ukryte.OPTIONAL_AND_HIDES_LOWER_PRIORITY
: znacznik powinien być wyświetlany tylko wtedy, gdy nie nakłada się na inne znaczniki. Jeśli 2 markery tego typu nakładają się na siebie, wyświetlany jest ten o wyższej kolejności rysowania. Jeśli mają tę samą kolejność rysowania, wyświetlana jest ta z niższym pionowym położeniem na ekranie.
Poniższy przykładowy kod pokazuje każdą z wartości zachowania w przypadku kolizji. Aby użyć tego przykładowego kodu, postępuj zgodnie z instrukcjami w sekcjach Konfiguracja i Dodawanie mapy 3D do aplikacji, aby skonfigurować projekt Android Studio z podstawową mapą 3D. Następnie dodaj ten kod do pliku 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 })