Class LinearIterator

java.lang.Object
org.locationtech.jts.linearref.LinearIterator

public class LinearIterator extends Object
An iterator over the components and coordinates of a linear geometry (LineStrings and MultiLineStrings. The standard usage pattern for a LinearIterator is:
 for (LinearIterator it = new LinearIterator(...); it.hasNext(); it.next()) {
   ...
   int ci = it.getComponentIndex();   // for example
   int vi = it.getVertexIndex();      // for example
   ...
 }
 
Version:
1.7
  • Constructor Details

    • LinearIterator

      public LinearIterator(Geometry linear)
      Creates an iterator initialized to the start of a linear Geometry
      Parameters:
      linear - the linear geometry to iterate over
      Throws:
      IllegalArgumentException - if linearGeom is not lineal
    • LinearIterator

      public LinearIterator(Geometry linear, LinearLocation start)
      Creates an iterator starting at a LinearLocation on a linear Geometry
      Parameters:
      linear - the linear geometry to iterate over
      start - the location to start at
      Throws:
      IllegalArgumentException - if linearGeom is not lineal
    • LinearIterator

      public LinearIterator(Geometry linearGeom, int componentIndex, int vertexIndex)
      Creates an iterator starting at a specified component and vertex in a linear Geometry
      Parameters:
      linearGeom - the linear geometry to iterate over
      componentIndex - the component to start at
      vertexIndex - the vertex to start at
      Throws:
      IllegalArgumentException - if linearGeom is not lineal
  • Method Details

    • hasNext

      public boolean hasNext()
      Tests whether there are any vertices left to iterator over. Specifically, hasNext() return true if the current state of the iterator represents a valid location on the linear geometry.
      Returns:
      true if there are more vertices to scan
    • next

      public void next()
      Moves the iterator ahead to the next vertex and (possibly) linear component.
    • isEndOfLine

      public boolean isEndOfLine()
      Checks whether the iterator cursor is pointing to the endpoint of a component LineString.
      Returns:
      true if the iterator is at an endpoint
    • getComponentIndex

      public int getComponentIndex()
      The component index of the vertex the iterator is currently at.
      Returns:
      the current component index
    • getVertexIndex

      public int getVertexIndex()
      The vertex index of the vertex the iterator is currently at.
      Returns:
      the current vertex index
    • getLine

      public LineString getLine()
      Gets the LineString component the iterator is current at.
      Returns:
      a linestring
    • getSegmentStart

      public Coordinate getSegmentStart()
      Gets the first Coordinate of the current segment. (the coordinate of the current vertex).
      Returns:
      a Coordinate
    • getSegmentEnd

      public Coordinate getSegmentEnd()
      Gets the second Coordinate of the current segment. (the coordinate of the next vertex). If the iterator is at the end of a line, null is returned.
      Returns:
      a Coordinate or null