В этой статье рассказывается, что делать, если возникают конфликты между маркерами, которые вы добавляете на карту, и ярлыками по умолчанию, например названиями улиц или объектов инфраструктуры.
Подготовка
Чтобы настроить разрешение конфликтов между маркерами и ярлыками, вам понадобится идентификатор карты.
Если вы используете упрощенный режим с растровыми изображениями, эта возможность будет недоступна.Как задать приоритет маркеров
Чтобы задать приоритет маркера, используйте свойство 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));