Class DefaultMarkerManager

  • All Implemented Interfaces:
    MarkerManager

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

      • DEFAULT_MAX_POOL_SIZE

        public static final int DEFAULT_MAX_POOL_SIZE
        기본 재사용 풀 크기.
        See Also:
        Constant Field Values
    • Constructor Detail

      • DefaultMarkerManager

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

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

      • 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()
        새로운 마커 객체를 생성합니다.