В этой статье рассказывается, как настроить поведение маркера при наложении.
Как настроить поведение маркера при наложении
  
Настройки поведения при наложении определяют, как маркер будет отображаться в случае совпадения с другим. Поведение при наложении зависит от способа создания расширенных маркеров:
- Расширенные маркеры, созданные с помощью - BitmapDescriptorFactory, называются маркерами битовой карты. Они отображаются на базовой карте.
- Все прочие расширенные маркеры, включая созданные при помощи метода - AdvancedMarkerOptions.iconView(), называются маркерами вида. Они отображаются на слое поверх базовой карты.
Чтобы настроить поведение при наложении, задайте для метода AdvancedMarkerOptions.collisionBehavior одно из следующих значений:
- CollisionBehavior.REQUIRED(значение по умолчанию). Маркер отображается всегда, независимо от наложения.
- CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL. Маркер отображается всегда, независимо от наложения. При этом совпадающие с ним маркеры- OPTIONAL_AND_HIDES_LOWER_PRIORITYи ярлыки скрываются.
- CollisionBehavior.OPTIONAL_AND_HIDES_LOWER_PRIORITY. Маркер отображается только в том случае, если не совпадает с другими.- Если два маркера битовой карты накладываются друг на друга, отображается тот, у которого выше - zIndex. При одинаковом значении- zIndexотображается маркер, расположенный на экране ниже по вертикали. Подробные сведения о- zIndexвы найдете в разделе Z-индекс маркера.
- Если совпадают два маркера вида, отображается тот, у которого больше значение - zIndex. При одинаковом значении- zIndexотображается маркер, созданный последним.
- Маркеры вида накладываются на маркеры битовой карты, поскольку отображаются на более высоком слое. Именно поэтому, чтобы лучше контролировать наложение, используйте маркеры одного типа. 
 
В примере ниже показано, как настроить поведение маркера при наложении.
Kotlin
// Collision behavior can only be changed in the AdvancedMarkerOptions object.
// Changes to collision behavior after a marker has been created are not possible
val collisionBehavior: Int = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL
val advancedMarkerOptions: AdvancedMarkerOptions = AdvancedMarkerOptions()
    .position(latLng)
    .collisionBehavior(collisionBehavior)
val marker: Marker = map.addMarker(advancedMarkerOptions)
Java
// Collision behavior can only be changed in the AdvancedMarkerOptions object.
// Changes to collision behavior after a marker has been created are not possible
int collisionBehavior = AdvancedMarkerOptions.CollisionBehavior.REQUIRED_AND_HIDES_OPTIONAL;
AdvancedMarkerOptions options =
        new AdvancedMarkerOptions()
            .position(latLng)
            .collisionBehavior(collisionBehavior);
Marker marker = map.addMarker(options);