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