Вы можете указать, как должен вести себя маркер при столкновении с другим маркером или меткой карты, установив свойство 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
})