Class PolylineRing

All Implemented Interfaces:
AutoCloseable

public final class PolylineRing extends CompositeRing implements AutoCloseable
Represents a polyline that is closed, i.e., the first point and the last point coincide.
See Also:
  • Method Details

    • finalize

      protected void finalize()
      Overrides:
      finalize in class CompositeRing
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Overrides:
      close in class CompositeRing
    • getPointCount

      public long getPointCount()
      Returns the number of points in the polyline ring.
      Returns:
      the number of points in the polyline ring.
    • getPoint

      @NotNull public Coordinate getPoint(long index) throws IllegalArgumentException
      Returns the coordinate for the requested index.
      Parameters:
      index - the index of the requested point.
      Returns:
      the point at the index.
      Throws:
      IllegalArgumentException - when requesting an invalid index.
    • getPoints

      @NotNull public List<@NotNull Coordinate> getPoints()
      Returns the list of points of this polyline ring.
      Returns:
      the list of points of this polyline ring.
    • getInterpolationType

      @NotNull public LineInterpolationType getInterpolationType()
      Returns the interpolation type of the line segment.

      One of

      Returns:
      the interpolation type of the line segment.
    • translate

      @NotNull public PolylineRing translate(@NotNull Coordinate translation)
      Translates the entire polyline ring.

      Note: when the polyline ring is defined in a geodetic reference and uses geodetic interpolation, the translation is not performed by translating the points one by one. Instead, a translation method is used that better preserves the shape of the polyline ring when moving it towards (or away from) the poles.

      Parameters:
      translation - the translation vector
      Returns:
      a new, translated geometry
    • movePoint

      @NotNull public PolylineRing movePoint(long index, @NotNull Coordinate newLocation) throws IllegalArgumentException
      Creates a new PolylineRing with a moved control point.
      Parameters:
      index - the index of the point to move. Should be in [0, getPointCount() - 1].
      newLocation - the new location of the point
      Returns:
      a new geometry
      Throws:
      IllegalArgumentException - for an invalid index
    • insertPoint

      @NotNull public PolylineRing insertPoint(long index, @NotNull Coordinate newLocation) throws IllegalArgumentException
      Creates a new PolylineRing with an newly inserted control point.
      Parameters:
      index - the index of the newly inserted control point. Should be in [0, getPointCount()]. For index 0, a new point will be added at the start of the Polyline ring. For index getPointCount(), a new point is added at the end of the Polyline ring. For other index values, a new point will be added between the point at specified (index-1) and the point at the index position.
      newLocation - the location of the new point
      Returns:
      a new geometry
      Throws:
      IllegalArgumentException - for an invalid index
    • removePoint

      @NotNull public PolylineRing removePoint(long index) throws IllegalArgumentException
      Creates a new PolylineRing with a control point removed.

      This methods returns a copy of the polyline ring if its point count is less or equal to 3.

      Parameters:
      index - the index of the point to be removed. Should be in [0, getPointCount() - 1].
      Returns:
      a new geometry
      Throws:
      IllegalArgumentException - for an invalid index