Class ExtendedCoordinateSequence

  • All Implemented Interfaces:
    Cloneable, CoordinateSequence

    public class ExtendedCoordinateSequence
    extends Object
    implements CoordinateSequence
    Demonstrates how to implement a CoordinateSequence for a new kind of coordinate (an ExtendedCoordinate in this example). In this implementation, Coordinates returned by #toArray and #get are live -- parties that change them are actually changing the ExtendedCoordinateSequence's underlying data.
    Version:
    1.7
    • Constructor Detail

      • ExtendedCoordinateSequence

        public ExtendedCoordinateSequence​(ExtendedCoordinate[] coordinates)
        Copy constructor -- simply aliases the input array, for better performance.
      • ExtendedCoordinateSequence

        public ExtendedCoordinateSequence​(Coordinate[] copyCoords)
        Constructor that makes a copy of an array of Coordinates. Always makes a copy of the input array, since the actual class of the Coordinates in the input array may be different from ExtendedCoordinate.
      • ExtendedCoordinateSequence

        public ExtendedCoordinateSequence​(CoordinateSequence coordSeq)
        Constructor that makes a copy of a CoordinateSequence.
      • ExtendedCoordinateSequence

        public ExtendedCoordinateSequence​(int size)
        Constructs a sequence of a given size, populated with new ExtendedCoordinates.
        Parameters:
        size - the size of the sequence to create
    • Method Detail

      • getMeasures

        public int getMeasures()
        Description copied from interface: CoordinateSequence
        Returns the number of measures included in CoordinateSequence.getDimension() for each coordinate for this sequence. For a measured coordinate sequence a non-zero value is returned.
        • For XY sequence measures is zero
        • For XYM sequence measure is one
        • For XYZ sequence measure is zero
        • For XYZM sequence measure is one
        • Values greater than one are supported
        Specified by:
        getMeasures in interface CoordinateSequence
        Returns:
        the number of measures included in dimension
      • getCoordinate

        public Coordinate getCoordinate​(int i)
        Description copied from interface: CoordinateSequence
        Returns (possibly a copy of) the i'th coordinate in this sequence. Whether or not the Coordinate returned is the actual underlying Coordinate or merely a copy depends on the implementation.

        Note that in the future the semantics of this method may change to guarantee that the Coordinate returned is always a copy. Callers should not to assume that they can modify a CoordinateSequence by modifying the object returned by this method.

        Specified by:
        getCoordinate in interface CoordinateSequence
        Parameters:
        i - the index of the coordinate to retrieve
        Returns:
        the i'th coordinate in the sequence
      • getCoordinateCopy

        public Coordinate getCoordinateCopy​(int index)
        Description copied from interface: CoordinateSequence
        Returns a copy of the i'th coordinate in this sequence. This method optimizes the situation where the caller is going to make a copy anyway - if the implementation has already created a new Coordinate object, no further copy is needed.
        Specified by:
        getCoordinateCopy in interface CoordinateSequence
        Parameters:
        index - the index of the coordinate to retrieve
        Returns:
        a copy of the i'th coordinate in the sequence
        See Also:
        CoordinateSequence.getX(int)
      • getX

        public double getX​(int index)
        Description copied from interface: CoordinateSequence
        Returns ordinate X (0) of the specified coordinate.
        Specified by:
        getX in interface CoordinateSequence
        Parameters:
        index - the coordinate index in the sequence
        Returns:
        the value of the X ordinate in the index'th coordinate
        See Also:
        CoordinateSequence.getX(int)
      • getY

        public double getY​(int index)
        Description copied from interface: CoordinateSequence
        Returns ordinate Y (1) of the specified coordinate.
        Specified by:
        getY in interface CoordinateSequence
        Parameters:
        index - the coordinate index in the sequence
        Returns:
        the value of the Y ordinate in the index'th coordinate
        See Also:
        CoordinateSequence.getY(int)
      • setOrdinate

        public void setOrdinate​(int index,
                                int ordinateIndex,
                                double value)
        Description copied from interface: CoordinateSequence
        Sets the value for a given ordinate of a coordinate in this sequence.
        Specified by:
        setOrdinate in interface CoordinateSequence
        Parameters:
        index - the coordinate index in the sequence
        ordinateIndex - the ordinate index in the coordinate (in range [0, dimension-1])
        value - the new ordinate value
        See Also:
        CoordinateSequence.setOrdinate(int, int, double)
      • clone

        public Object clone()
        Deprecated.
        Description copied from interface: CoordinateSequence
        Returns a deep copy of this collection. Called by Geometry#clone.
        Specified by:
        clone in interface CoordinateSequence
        Overrides:
        clone in class Object
        Returns:
        a copy of the coordinate sequence containing copies of all points
      • size

        public int size()
        Description copied from interface: CoordinateSequence
        Returns the number of coordinates in this sequence.
        Specified by:
        size in interface CoordinateSequence
        Returns:
        the size of the sequence
      • toCoordinateArray

        public Coordinate[] toCoordinateArray()
        Description copied from interface: CoordinateSequence
        Returns (possibly copies of) the Coordinates in this collection. Whether or not the Coordinates returned are the actual underlying Coordinates or merely copies depends on the implementation. Note that if this implementation does not store its data as an array of Coordinates, this method will incur a performance penalty because the array needs to be built from scratch.
        Specified by:
        toCoordinateArray in interface CoordinateSequence
        Returns:
        a array of coordinates containing the point values in this sequence
      • expandEnvelope

        public Envelope expandEnvelope​(Envelope env)
        Description copied from interface: CoordinateSequence
        Expands the given Envelope to include the coordinates in the sequence. Allows implementing classes to optimize access to coordinate values.
        Specified by:
        expandEnvelope in interface CoordinateSequence
        Parameters:
        env - the envelope to expand
        Returns:
        a ref to the expanded envelope