충돌 동작

플랫폼 선택: Android iOS JavaScript

이 페이지에서는 마커의 충돌 동작을 제어하는 방법을 설명합니다.

마커의 충돌 동작 설정

충돌 동작은 마커가 다른 마커와 충돌하는(겹치는) 경우 표시되는 방식을 관리합니다. 충돌 동작의 작동 방식은 고급 마커를 어떻게 만들었는지에 따라 달라집니다.

  • 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);