com.vividsolutions.jtsexample.geom
Class ExtendedCoordinateSequence

java.lang.Object
  extended by com.vividsolutions.jtsexample.geom.ExtendedCoordinateSequence
All Implemented Interfaces:
CoordinateSequence, Cloneable

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

Field Summary
 
Fields inherited from interface com.vividsolutions.jts.geom.CoordinateSequence
M, X, Y, Z
 
Constructor Summary
ExtendedCoordinateSequence(Coordinate[] copyCoords)
          Constructor that makes a copy of an array of Coordinates.
ExtendedCoordinateSequence(CoordinateSequence coordSeq)
          Constructor that makes a copy of a CoordinateSequence.
ExtendedCoordinateSequence(ExtendedCoordinate[] coordinates)
          Copy constructor -- simply aliases the input array, for better performance.
ExtendedCoordinateSequence(int size)
          Constructs a sequence of a given size, populated with new ExtendedCoordinates.
 
Method Summary
 Object clone()
          Returns a deep copy of this collection.
static ExtendedCoordinate[] copy(Coordinate[] coordinates)
           
static ExtendedCoordinate[] copy(CoordinateSequence coordSeq)
           
 Envelope expandEnvelope(Envelope env)
          Expands the given Envelope to include the coordinates in the sequence.
 Coordinate getCoordinate(int i)
          Returns (possibly a copy of) the i'th coordinate in this sequence.
 void getCoordinate(int index, Coordinate coord)
          Copies the i'th coordinate in the sequence to the supplied Coordinate.
 Coordinate getCoordinateCopy(int index)
          Returns a copy of the i'th coordinate in this sequence.
 int getDimension()
          Returns the dimension (number of ordinates in each coordinate) for this sequence.
 double getOrdinate(int index, int ordinateIndex)
          Returns the ordinate of a coordinate in this sequence.
 double getX(int index)
          Returns ordinate X (0) of the specified coordinate.
 double getY(int index)
          Returns ordinate Y (1) of the specified coordinate.
 void setOrdinate(int index, int ordinateIndex, double value)
          Sets the value for a given ordinate of a coordinate in this sequence.
 int size()
          Returns the number of coordinates in this sequence.
 Coordinate[] toCoordinateArray()
          Returns (possibly copies of) the Coordinates in this collection.
 String toString()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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

copy

public static ExtendedCoordinate[] copy(Coordinate[] coordinates)

copy

public static ExtendedCoordinate[] copy(CoordinateSequence coordSeq)

getDimension

public int getDimension()
Description copied from interface: CoordinateSequence
Returns the dimension (number of ordinates in each coordinate) for this sequence.

Specified by:
getDimension in interface CoordinateSequence
Returns:
the dimension of the sequence.
See Also:
CoordinateSequence.getDimension()

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)

getCoordinate

public void getCoordinate(int index,
                          Coordinate coord)
Description copied from interface: CoordinateSequence
Copies the i'th coordinate in the sequence to the supplied Coordinate. Only the first two dimensions are copied.

Specified by:
getCoordinate in interface CoordinateSequence
Parameters:
index - the index of the coordinate to copy
coord - a Coordinate to receive the value
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
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
Returns:
the value of the Y ordinate in the index'th coordinate
See Also:
CoordinateSequence.getY(int)

getOrdinate

public double getOrdinate(int index,
                          int ordinateIndex)
Description copied from interface: CoordinateSequence
Returns the ordinate of a coordinate in this sequence. Ordinate indices 0 and 1 are assumed to be X and Y. Ordinates indices greater than 1 have user-defined semantics (for instance, they may contain other dimensions or measure values).

Specified by:
getOrdinate in interface CoordinateSequence
Parameters:
index - the coordinate index in the sequence
ordinateIndex - the ordinate index in the coordinate (in range [0, dimension-1])
See Also:
CoordinateSequence.getOrdinate(int, 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()
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

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2012. All Rights Reserved.