Class MultipartPathOverlay

  • All Implemented Interfaces:
    Pickable

    public final class MultipartPathOverlay
    extends Overlay
    경로선을 여러 파트로 나누어 각각 다른 색상을 부여할 수 있는 특수한 PathOverlay. 다양한 색상으로 구성된 경로선을 나타내고자 할 경우 여러 개의 PathOverlay를 사용하는 것보다 이 클래스를 사용하는 것이 효율적입니다. MultipartPathOverlay는 좌표열 파트의 목록와 색상 파트의 목록으로 구성되며, 0번째 좌표열 파트에 0번째 색상 파트의 색상이 적용됩니다. 따라서 좌표열 파트와 색상 파트의 크기가 동일해야 합니다.
    • Constructor Detail

      • MultipartPathOverlay

        public MultipartPathOverlay()
        기본 생성자.
      • MultipartPathOverlay

        public MultipartPathOverlay​(@NonNull
                                    java.util.List<java.util.List<LatLng>> coordParts,
                                    @NonNull
                                    java.util.List<MultipartPathOverlay.ColorPart> colorParts)
        좌표열과 색상 파트를 지정하는 생성자. 만약 coordParts의 크기가 1 미만이거나 각 파트의 크기가 2 미만이면, 혹은 colorParts의 크기가 1 미만이면 IllegalArgumentException이 발생합니다.
        Parameters:
        coordParts - 좌표열 파트의 목록.
        colorParts - 색상 파트의 목록.
        Throws:
        java.lang.IllegalArgumentException - coordParts의 크기가 1 미만이거나 각 파트의 크기가 2 미만, 혹은 colorParts의 크기가 1 미만일 경우 발생.
    • Method Detail

      • setMap

        public void setMap​(@Nullable
                           NaverMap map)
        오버레이를 map에 추가합니다. mapnull을 지정하면 지도에서 제거됩니다.

        경로선을 지도에 추가하기 전에는 반드시 setCoordParts(List)로 좌표열을 지정해야 합니다. 그렇지 않을 경우 IllegalStateException이 발생합니다.
        Overrides:
        setMap in class Overlay
        Parameters:
        map - 오버레이를 추가할 지도 객체.
        Throws:
        java.lang.IllegalStateException - coordParts를 지정하지 않았을 경우 발생.
      • getGlobalZIndex

        public int getGlobalZIndex()
        전역 Z 인덱스를 반환합니다. 여러 오버레이가 화면에서 겹쳐지면 전역 Z 인덱스가 큰 오버레이가 작은 오버레이를 덮습니다. 또한 값이 0 이상이면 오버레이가 심벌 위에, 0 미만이면 심벌 아래에 그려집니다.

        기본값은 DEFAULT_GLOBAL_Z_INDEX입니다.
        Overrides:
        getGlobalZIndex in class Overlay
        Returns:
        전역 Z 인덱스.
      • setGlobalZIndex

        public void setGlobalZIndex​(int globalZIndex)
        전역 Z 인덱스를 지정합니다. 여러 오버레이가 화면에서 겹쳐지면 전역 Z 인덱스가 큰 오버레이가 작은 오버레이를 덮습니다. 또한 값이 0 이상이면 오버레이가 심벌 위에, 0 미만이면 심벌 아래에 그려집니다.

        기본값은 DEFAULT_GLOBAL_Z_INDEX입니다.
        Overrides:
        setGlobalZIndex in class Overlay
        Parameters:
        globalZIndex - 전역 Z 인덱스.
      • getCoordParts

        @NonNull
        @UiThread
        public java.util.List<java.util.List<LatLng>> getCoordParts()
        좌표열 파트의 목록을 반환합니다.
        Returns:
        좌표열 파트의 목록.
      • setCoordParts

        @UiThread
        public void setCoordParts​(@NonNull
                                  java.util.List<java.util.List<LatLng>> coordParts)
        좌표열 파트의 목록을 지정합니다. 만약 coordParts의 크기가 1 미만이거나 각 파트의 크기가 2 미만이면 IllegalArgumentException이 발생합니다. 각 파트에 null이거나 유효하지 않은(LatLng.isValid()false인) 좌표가 있다면 Overlay.InvalidCoordinateException이 발생합니다.
        Parameters:
        coordParts - 좌표열 파트의 목록.
        Throws:
        java.lang.IllegalArgumentException - coordParts의 크기가 1 미만이거나 각 파트의 크기가 2 미만일 경우 발생.
        Overlay.InvalidCoordinateException - 각 홀에 유효하지 않은 좌표가 있을 경우 발생.
      • getBounds

        @NonNull
        @UiThread
        public LatLngBounds getBounds()
        오버레이가 차지하는 영역을 반환합니다. setCoordParts(List)로 지정한 좌표열의 영역과 동일합니다.

        기본값은 빈(LatLngBounds.isEmpty()true인) 영역입니다.
        Returns:
        영역.
      • getColorParts

        @NonNull
        @UiThread
        public java.util.List<MultipartPathOverlay.ColorPart> getColorParts()
        색상 파트의 목록을 반환합니다.
        Returns:
        색상 파트의 목록.
      • setColorParts

        @UiThread
        public void setColorParts​(@NonNull
                                  java.util.List<MultipartPathOverlay.ColorPart> colorParts)
        색상 파트의 목록을 지정합니다. 만약 colorParts의 크기가 1 미만이거나 null인 파트가 있다면 IllegalArgumentException이 발생합니다.
        Parameters:
        colorParts - 색상 파트의 목록.
        Throws:
        java.lang.IllegalArgumentException - colorParts의 크기가 1 미만이거나 null인 파트가 있을 경우 발생.
      • getProgress

        @UiThread
        public double getProgress()
        진척률을 -1~1로 반환합니다. 경로는 진척률을 기준으로 지나온 경로와 지나갈 경로로 구분됩니다. 지나온 경로에는 passedColorpassedOutlineColor가 사용되고 지나갈 경로에는 coloroutlineColor가 사용됩니다.
        • 진척률을 양수로 지정하면 첫 좌표부터 진척률만큼 떨어진 지점까지의 선형은 지나온 경로로, 나머지는 지나갈 경로로 간주됩니다.
        • 진척률을 음수로 지정하면 마지막 좌표부터 -진척률만큼 떨어진 지점까지의 선형은 지나온 경로로, 나머지는 지나갈 경로로 간주됩니다.
        • 진척률을 0으로 지정하면 모든 선형이 지나갈 경로로 간주됩니다.
        기본값은 0입니다.
        Returns:
        진척률.
      • setProgress

        @UiThread
        public void setProgress​(double progress)
        진척률을 -1~1로 지정합니다. 경로는 진척률을 기준으로 지나온 경로와 지나갈 경로로 구분됩니다. 지나온 경로에는 passedColorpassedOutlineColor가 사용되고 지나갈 경로에는 coloroutlineColor가 사용됩니다.
        • 진척률을 양수로 지정하면 첫 좌표부터 진척률만큼 떨어진 지점까지의 선형은 지나온 경로로, 나머지는 지나갈 경로로 간주됩니다.
        • 진척률을 음수로 지정하면 마지막 좌표부터 -진척률만큼 떨어진 지점까지의 선형은 지나온 경로로, 나머지는 지나갈 경로로 간주됩니다.
        • 진척률을 0으로 지정하면 모든 선형이 지나갈 경로로 간주됩니다.
        기본값은 0입니다.
        Parameters:
        progress - 진척률.
      • getWidth

        @Px
        @UiThread
        public int getWidth()
        두께를 반환합니다.

        기본값은 10입니다.
        Returns:
        두께. 픽셀 단위.
      • setWidth

        @UiThread
        public void setWidth​(@Px
                             int width)
        두께를 지정합니다.

        기본값은 10입니다.
        Parameters:
        width - 두께. 픽셀 단위.
      • getOutlineWidth

        @Px
        @UiThread
        public int getOutlineWidth()
        테두리의 두께를 반환합니다. 0일 경우 테두리가 그려지지 않습니다.

        기본값은 2입니다.
        Returns:
        두께. 픽셀 단위.
      • setOutlineWidth

        @UiThread
        public void setOutlineWidth​(@Px
                                    int width)
        테두리의 두께를 지정합니다. 0일 경우 테두리가 그려지지 않습니다.

        기본값은 2입니다.
        Parameters:
        width - 두께. 픽셀 단위.
      • getPatternImage

        @Nullable
        @UiThread
        public OverlayImage getPatternImage()
        패턴 이미지를 반환합니다. 패턴 이미지의 크기가 경로선의 두께보다 클 경우 경로선의 두께에 맞게 축소됩니다. null일 경우 패턴을 표시하지 않습니다.

        기본값은 null입니다.
        Returns:
        패턴 이미지.
      • setPatternImage

        @UiThread
        public void setPatternImage​(@Nullable
                                    OverlayImage pattern)
        패턴 이미지를 지정합니다. 패턴 이미지의 크기가 경로선의 두께보다 클 경우 경로선의 두께에 맞게 축소됩니다. null일 경우 패턴을 표시하지 않습니다.

        기본값은 null입니다.
        Parameters:
        pattern - 패턴 이미지.
      • getPatternInterval

        @Px
        @UiThread
        public int getPatternInterval()
        패턴 이미지의 간격을 반환합니다. 0일 경우 패턴을 표시하지 않습니다.

        기본값은 50입니다.
        Returns:
        간격. 픽셀 단위.
      • setPatternInterval

        @UiThread
        public void setPatternInterval​(@Px
                                       int interval)
        패턴 이미지의 간격을 지정합니다. 0일 경우 패턴을 표시하지 않습니다.

        기본값은 50입니다.
        Parameters:
        interval - 간격. 픽셀 단위.
      • isHideCollidedSymbols

        @UiThread
        public boolean isHideCollidedSymbols()
        경로선과 지도 심벌이 겹칠 경우 지도 심벌을 숨길지 여부를 반환합니다.

        기본값은 false입니다.
        Returns:
        지도 심벌을 숨길 경우 true, 그렇지 않을 경우 false.
      • setHideCollidedSymbols

        @UiThread
        public void setHideCollidedSymbols​(boolean hide)
        경로선과 지도 심벌이 겹칠 경우 지도 심벌을 숨길지 여부를 지정합니다.

        기본값은 false입니다.
        Parameters:
        hide - 지도 심벌을 숨길 경우 true, 그렇지 않을 경우 false.
      • isHideCollidedMarkers

        @UiThread
        public boolean isHideCollidedMarkers()
        경로선과 마커가 겹칠 경우 마커를 숨길지 여부를 반환합니다.

        기본값은 false입니다.
        Returns:
        마커를 숨길 경우 true, 그렇지 않을 경우 false.
      • setHideCollidedMarkers

        @UiThread
        public void setHideCollidedMarkers​(boolean hide)
        경로선과 마커가 겹칠 경우 마커를 숨길지 여부를 지정합니다.

        기본값은 false입니다.
        Parameters:
        hide - 마커를 숨길 경우 true, 그렇지 않을 경우 false.
      • isHideCollidedCaptions

        @UiThread
        public boolean isHideCollidedCaptions()
        경로선과 마커의 캡션이 겹칠 경우 마커의 캡션을 숨길지 여부를 반환합니다.

        기본값은 false입니다.
        Returns:
        마커의 캡션을 숨길 경우 true, 그렇지 않을 경우 false.
      • setHideCollidedCaptions

        @UiThread
        public void setHideCollidedCaptions​(boolean hide)
        경로선과 마커의 캡션이 겹칠 경우 마커의 캡션을 숨길지 여부를 지정합니다.

        기본값은 false입니다.
        Parameters:
        hide - 마커의 캡션을 숨길 경우 true, 그렇지 않을 경우 false.