Вы можете указать, как маркер должен вести себя при столкновении с другим маркером или меткой карты, установив для свойства collisionBehavior
одно из следующих значений:
-
REQUIRED
: Маркер должен отображаться всегда, независимо от столкновений. -
REQUIRED_AND_HIDES_OPTIONAL
: Маркер должен всегда отображаться независимо от столкновений. Маркеры сOPTIONAL_AND_HIDES_LOWER_PRIORITY
поведением столкновений или метки карты по умолчанию, которые перекрываются с этим маркером, будут скрыты. -
OPTIONAL_AND_HIDES_LOWER_PRIORITY
: Маркер должен отображаться только в том случае, если он не перекрывается другими маркерами. Если два маркера этого типа перекрываются, отображается тот, у которого более высокий порядок отрисовки. Если у них одинаковый порядок отрисовки, отображается тот, у которого более низкое вертикальное положение экрана.
Следующий пример кода демонстрирует каждое из значений поведения столкновения. Чтобы использовать этот пример кода, следуйте инструкциям в разделе Настройка и Добавление 3D-карты в приложение, чтобы настроить проект Android Studio с базовой 3D-картой. Затем добавьте следующий код в файл 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 })