Możesz określić, jak znacznik ma się zachowywać, gdy koliduje z innym znacznikiem lub etykietą mapy, ustawiając 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. Znaczniki zOPTIONAL_AND_HIDES_LOWER_PRIORITYzachowaniem kolizji lub domyślne etykiety mapy, które pokrywają się z tym znacznikiem, 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 znaczniki tego typu nakładają się na siebie, wyświetlany jest ten z wyższą kolejnością rysowania. Jeśli mają ten sam porządek rysowania, wyświetlany jest ten znacznik, który znajduje się niżej na ekranie.
Poniższy przykładowy kod pokazuje każdą z wartości zachowania przy 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 w Android Studio z podstawową mapą 3D. Następnie dodaj do pliku MainActivity.kt ten kod:
// 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
})