В этой статье рассказывается, что делать, если возникают конфликты между маркерами, которые вы добавляете на карту, и ярлыками по умолчанию, например названиями улиц или объектов инфраструктуры.
Подготовка
Чтобы настроить разрешение конфликтов между маркерами и ярлыками, вам понадобится идентификатор карты.
Если вы используете упрощенный режим с растровыми изображениями, эта возможность будет недоступна.Как задать приоритет маркеров
Чтобы задать приоритет маркера, используйте свойство Marker.CollisionBehavior.
Возможны следующие значения:
- REQUIRED– вариант по умолчанию. Маркер, который накладывается на другие маркеры, ярлыки и объекты, будет отображаться.
- OPTIONAL_AND_HIDES_LOWER_PRIORITY– маркер может заменяться или перекрываться обязательными маркерами, а также маркерами- OPTIONAL_AND_HIDES_LOWER_PRIORITYс более высоким приоритетом. Чтобы задать относительный приоритет маркеров, для которых выбрано значение- OPTIONAL_AND_HIDES_LOWER_PRIORITY, используйте- zIndex(чем больше значение- zIndex, тем выше приоритет).
- REQUIRED_AND_HIDES_OPTIONAL– маркер будет отображаться, а перекрывающиеся маркеры- OPTIONAL_AND_HIDES_LOWER_PRIORITY, ярлыки и объекты будут скрыты. Сам маркер может накладываться на другие обязательные маркеры.
В примере ниже показано, как задать значение параметра CollisionBehavior для нового маркера:
Kotlin
val marker = map.addMarker(
    MarkerOptions()
        .position(LatLng(10.0, 10.0))
        .zIndex(10f) // Optional.
        .collisionBehavior(Marker.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY)
)
      
  Java
Marker marker = map.addMarker(
    new MarkerOptions()
        .position(new LatLng(10, 10))
        .zIndex(10) // Optional.
        .collisionBehavior(Marker.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY));