Class PathOverlay

  • All Implemented Interfaces:
    Pickable

    public final class PathOverlay
    extends Overlay
    지도에 경로선을 나타내는 오버레이. 하나의 선을 나타낸다는 측면에서는 PolylineOverlay와 유사하나, 다음과 같이 경로선에 특화된 특징이 있습니다.
    • 테두리와 패턴 이미지를 적용할 수 있습니다.
    • 지도를 기울이더라도 두께가 일정하게 유지됩니다.
    • 자기교차(self-intersection)가 일어나더라도 테두리, 패턴 이미지가 자연스럽게 나타납니다.
    • 진척률을 지정할 수 있으며, 지나온/지나갈 경로에 각각 다른 색상과 테두리를 지정할 수 있습니다.
    • 충돌하는 마커 및 심벌을 숨길 수 있습니다.
    • 점선 패턴, 끝 지점/연결점의 모양은 지정할 수 없습니다.
    • Constructor Detail

      • PathOverlay

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

        public PathOverlay​(@NonNull
                           java.util.List<LatLng> coords)
        좌표열을 지정하는 생성자. 만약 coords의 크기가 2 미만이면 IllegalArgumentException이 발생합니다.
        Parameters:
        coords - 좌표열.
        Throws:
        java.lang.IllegalArgumentException - coords의 크기가 2 미만일 경우 발생.
    • Method Detail

      • setMap

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

        경로선을 지도에 추가하기 전에는 반드시 setCoords(List)로 좌표열을 지정해야 합니다. 그렇지 않을 경우 IllegalStateException이 발생합니다.
        Overrides:
        setMap in class Overlay
        Parameters:
        map - 오버레이를 추가할 지도 객체.
        Throws:
        java.lang.IllegalStateException - coords를 지정하지 않았을 경우 발생.
      • 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 인덱스.
      • getCoords

        @NonNull
        @UiThread
        public java.util.List<LatLng> getCoords()
        좌표열을 반환합니다.
        Returns:
        좌표열.
      • setCoords

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

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

        기본값은 빈(LatLngBounds.isEmpty()true인) 영역입니다.
        Returns:
        영역.
      • 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 - 두께. 픽셀 단위.
      • getColor

        @UiThread
        public int getColor()
        경로선의 색상을 반환합니다. 경로선의 색상은 반투명일 수 없으며, 완전히 투명하거나 완전히 불투명해야 합니다. 색상의 알파가 0이 아닌 경우 완전히 불투명한 것으로 간주됩니다. 색상이 투명할 경우 테두리도 그려지지 않습니다.

        기본값은 Color.WHITE입니다.
        Returns:
        색상.
      • setColor

        @UiThread
        public void setColor​(int color)
        경로선의 색상을 지정합니다. 경로선의 색상은 반투명일 수 없으며, 완전히 투명하거나 완전히 불투명해야 합니다. 색상의 알파가 0이 아닌 경우 완전히 불투명한 것으로 간주됩니다. 색상이 투명할 경우 테두리도 그려지지 않습니다.

        기본값은 Color.WHITE입니다.
        Parameters:
        color - 색상.
      • getOutlineColor

        @UiThread
        public int getOutlineColor()
        경로선의 테두리 색상을 반환합니다. 경로선의 테두리 색상은 반투명일 수 없으며, 완전히 투명하거나 완전히 불투명해야 합니다. 색상의 알파가 0이 아닌 경우 완전히 불투명한 것으로 간주됩니다.

        기본값은 Color.BLACK입니다.
        Returns:
        색상.
      • setOutlineColor

        @UiThread
        public void setOutlineColor​(int outlineColor)
        경로선의 테두리 색상을 지정합니다. 경로선의 테두리 색상은 반투명일 수 없으며, 완전히 투명하거나 완전히 불투명해야 합니다. 색상의 알파가 0이 아닌 경우 완전히 불투명한 것으로 간주됩니다.

        기본값은 Color.BLACK입니다.
        Parameters:
        outlineColor - 색상.
      • getPassedColor

        @UiThread
        public int getPassedColor()
        지나온 경로선의 색상을 반환합니다. 지나온 경로선의 색상은 반투명일 수 없으며, 완전히 투명하거나 완전히 불투명해야 합니다. 색상의 알파가 0이 아닌 경우 완전히 불투명한 것으로 간주됩니다.

        기본값은 Color.WHITE입니다.
        Returns:
        색상.
      • setPassedColor

        @UiThread
        public void setPassedColor​(int passedColor)
        지나온 경로선의 색상을 지정합니다. 지나온 경로선의 색상은 반투명일 수 없으며, 완전히 투명하거나 완전히 불투명해야 합니다. 색상의 알파가 0이 아닌 경우 완전히 불투명한 것으로 간주됩니다. 색상이 투명할 경우 테두리도 그려지지 않습니다.

        기본값은 Color.WHITE입니다.
        Parameters:
        passedColor - 색상.
      • getPassedOutlineColor

        @UiThread
        public int getPassedOutlineColor()
        지나온 경로선의 테두리 색상을 반환합니다. 지나온 경로선의 테두리 색상은 반투명일 수 없으며, 완전히 투명하거나 완전히 불투명해야 합니다. 색상의 알파가 0이 아닌 경우 완전히 불투명한 것으로 간주됩니다. 색상이 투명할 경우 테두리도 그려지지 않습니다.

        기본값은 Color.BLACK입니다.
        Returns:
        색상.
      • setPassedOutlineColor

        @UiThread
        public void setPassedOutlineColor​(int passedOutlineColor)
        지나온 경로선의 테두리 색상을 지정합니다. 지나온 경로선의 테두리 색상은 반투명일 수 없으며, 완전히 투명하거나 완전히 불투명해야 합니다. 색상의 알파가 0이 아닌 경우 완전히 불투명한 것으로 간주됩니다.

        기본값은 Color.BLACK입니다.
        Parameters:
        passedOutlineColor - 색상.
      • 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.