Управление маркерами, ярлыками и конфликтующими объектами

В этой статье рассказывается, что делать, если возникают конфликты между маркерами, которые вы добавляете на карту, и ярлыками по умолчанию, например названиями улиц или объектов инфраструктуры.

Подготовка

Чтобы настроить разрешение конфликтов между маркерами и ярлыками, вам понадобится идентификатор карты.

Если вы используете упрощенный режим с растровыми изображениями, эта возможность будет недоступна.

Как задать приоритет маркеров

Чтобы задать приоритет маркера, используйте свойство 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));