Class LinearIterator


  • public class LinearIterator
    extends java.lang.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 Detail

      • 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:
        java.lang.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:
        java.lang.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:
        java.lang.IllegalArgumentException - if linearGeom is not lineal
    • Method Detail

      • 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