Class MultipartPathOverlay

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

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

  • Constructor Details

    • MultipartPathOverlay

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

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

    • setMap

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

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

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

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

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

      색상 파트의 목록을 반환합니다.
      Returns:
      색상 파트의 목록.
    • setColorParts

      @UiThread public void setColorParts(@NonNull List<MultipartPathOverlay.ColorPart> colorParts)
      색상 파트의 목록을 지정합니다. 만약 colorParts의 크기가 1 미만이거나 null인 파트가 있다면 IllegalArgumentException이 발생합니다.
      Parameters:
      colorParts - 색상 파트의 목록.
      Throws:
      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.