Настройка поведения при столкновении маркеров,Настройка поведения при столкновении маркеров

Выберите платформу: Android iOS JavaScript

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