Class DefaultMarkerManager

java.lang.Object
com.naver.maps.map.clustering.DefaultMarkerManager
All Implemented Interfaces:
MarkerManager

public class DefaultMarkerManager extends Object implements MarkerManager
기본 MarkerManager 구현체. 이 클래스를 이용하면 Marker 객체가 재사용되어 성능이 향상됩니다. 대신 한 번 사용되었던 Marker 객체의 속성이 초기화되지 않고 계속 남으므로 ClusterMarkerUpdaterLeafMarkerUpdater에서 매번 Marker의 속성을 지정해야 합니다. 단, 변하지 않는 속성이 있다면 createMarker()를 오버라이드해 Marker의 속성을 생성 직후 한 번만 지정하도록 최적화할 수 있습니다.
  • Field Details

    • DEFAULT_MAX_POOL_SIZE

      public static final int DEFAULT_MAX_POOL_SIZE
      기본 재사용 풀 크기.
      See Also:
  • Constructor Details

    • DefaultMarkerManager

      public DefaultMarkerManager()
      기본 생성자. 재사용 풀의 크기는 DEFAULT_MAX_POOL_SIZE로 지정됩니다.
    • DefaultMarkerManager

      public DefaultMarkerManager(int maxPoolSize)
      재사용 풀의 크기를 지정하는 생성자.
      Parameters:
      maxPoolSize - 재사용 풀의 크기.
  • Method Details

    • retainMarker

      @NonNull @UiThread public final Marker retainMarker(@NonNull MarkerInfo info)
      풀로부터 Marker 객체를 가져와 반환합니다. 풀이 비어있다면 createMarker()를 호출해 새로운 마커 객체를 생성합니다.
      Specified by:
      retainMarker in interface MarkerManager
      Parameters:
      info - 노출이 필요한 MarkerInfo 객체.
      Returns:
      노출할 Marker 객체.
    • releaseMarker

      @UiThread public final void releaseMarker(@NonNull MarkerInfo info, @NonNull Marker marker)
      Marker 객체를 다시 사용할 수 있도록 풀로 반환합니다.
      Specified by:
      releaseMarker in interface MarkerManager
      Parameters:
      info - 더 이상 노출되지 않는 MarkerInfo 객체.
      marker - 더 이상 노출되지 않는 Marker 객체.
    • createMarker

      @NonNull @UiThread public Marker createMarker()
      새로운 마커 객체를 생성합니다.