Class PathOverlay

java.lang.Object
com.naver.maps.map.overlay.Overlay
com.naver.maps.map.overlay.PathOverlay
All Implemented Interfaces:
Pickable

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

  • Constructor Details

    • PathOverlay

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

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

    • setMap

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

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

      @UiThread public void setCoords(@NonNull List<LatLng> coords)
      좌표열을 지정합니다. 만약 coords의 크기가 2 미만이면 IllegalArgumentException이 발생합니다. coordsnull이거나 유효하지 않은(LatLng.isValid()false인) 좌표가 있다면 Overlay.InvalidCoordinateException이 발생합니다.
      Parameters:
      coords - 좌표열.
      Throws:
      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.