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

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

Подготовка

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

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

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

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

Java


Marker marker = map.addMarker(
    new MarkerOptions()
        .position(new LatLng(10, 10))
        .zIndex(10) // Optional.
        .collisionBehavior(Marker.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY));

      

Kotlin


val marker = map.addMarker(
    MarkerOptions()
        .position(LatLng(10.0, 10.0))
        .zIndex(10f) // Optional.
        .collisionBehavior(Marker.CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY)
)