JTS Topology Suite version 1.12

com.vividsolutions.jts.geom
Class Coordinate

java.lang.Object
  extended by com.vividsolutions.jts.geom.Coordinate
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable

public class Coordinate
extends java.lang.Object
implements java.lang.Comparable, java.lang.Cloneable, java.io.Serializable

A lightweight class used to store coordinates on the 2-dimensional Cartesian plane. It is distinct from Point, which is a subclass of Geometry. Unlike objects of type Point (which contain additional information such as an envelope, a precision model, and spatial reference system information), a Coordinate only contains ordinate values and accessor methods.

Coordinates are two-dimensional points, with an additional Z-ordinate. JTS does not support any operations on the Z-ordinate except the basic accessor functions. If an Z-ordinate value is not specified or not defined, constructed coordinates have a Z-ordinate of NaN (which is also the value of NULL_ORDINATE). The standard comparison functions ignore the Z-ordinate.

Version:
1.7
See Also:
Serialized Form

Nested Class Summary
static class Coordinate.DimensionalComparator
          Compares two Coordinates, allowing for either a 2-dimensional or 3-dimensional comparison, and handling NaN values correctly.
 
Field Summary
static double NULL_ORDINATE
          The value used to indicate a null or missing ordinate value.
 double x
          The x-coordinate.
 double y
          The y-coordinate.
 double z
          The z-coordinate.
 
Constructor Summary
Coordinate()
          Constructs a Coordinate at (0,0,NaN).
Coordinate(Coordinate c)
          Constructs a Coordinate having the same (x,y,z) values as other.
Coordinate(double x, double y)
          Constructs a Coordinate at (x,y,NaN).
Coordinate(double x, double y, double z)
          Constructs a Coordinate at (x,y,z).
 
Method Summary
 java.lang.Object clone()
           
 int compareTo(java.lang.Object o)
          Compares this Coordinate with the specified Coordinate for order.
 double distance(Coordinate p)
          Computes the 2-dimensional Euclidean distance to another location.
 boolean equals(java.lang.Object other)
          Returns true if other has the same values for the x and y ordinates.
 boolean equals2D(Coordinate other)
          Returns whether the planar projections of the two Coordinates are equal.
 boolean equals3D(Coordinate other)
          Returns true if other has the same values for x, y and z.
 int hashCode()
          Gets a hashcode for this coordinate.
static int hashCode(double x)
          Computes a hash code for a double value, using the algorithm from Joshua Bloch's book Effective Java"
 void setCoordinate(Coordinate other)
          Sets this Coordinates (x,y,z) values to that of other.
 java.lang.String toString()
          Returns a String of the form (x,y,z) .
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NULL_ORDINATE

public static final double NULL_ORDINATE
The value used to indicate a null or missing ordinate value. In particular, used for the value of ordinates for dimensions greater than the defined dimension of a coordinate.

See Also:
Constant Field Values

x

public double x
The x-coordinate.


y

public double y
The y-coordinate.


z

public double z
The z-coordinate.

Constructor Detail

Coordinate

public Coordinate(double x,
                  double y,
                  double z)
Constructs a Coordinate at (x,y,z).

Parameters:
x - the x-value
y - the y-value
z - the z-value

Coordinate

public Coordinate()
Constructs a Coordinate at (0,0,NaN).


Coordinate

public Coordinate(Coordinate c)
Constructs a Coordinate having the same (x,y,z) values as other.

Parameters:
c - the Coordinate to copy.

Coordinate

public Coordinate(double x,
                  double y)
Constructs a Coordinate at (x,y,NaN).

Parameters:
x - the x-value
y - the y-value
Method Detail

setCoordinate

public void setCoordinate(Coordinate other)
Sets this Coordinates (x,y,z) values to that of other.

Parameters:
other - the Coordinate to copy

equals2D

public boolean equals2D(Coordinate other)
Returns whether the planar projections of the two Coordinates are equal.

Parameters:
other - a Coordinate with which to do the 2D comparison.
Returns:
true if the x- and y-coordinates are equal; the z-coordinates do not have to be equal.

equals

public boolean equals(java.lang.Object other)
Returns true if other has the same values for the x and y ordinates. Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.

Overrides:
equals in class java.lang.Object
Parameters:
other - a Coordinate with which to do the comparison.
Returns:
true if other is a Coordinate with the same values for the x and y ordinates.

compareTo

public int compareTo(java.lang.Object o)
Compares this Coordinate with the specified Coordinate for order. This method ignores the z value when making the comparison. Returns: Note: This method assumes that ordinate values are valid numbers. NaN values are not handled correctly.

Specified by:
compareTo in interface java.lang.Comparable
Parameters:
o - the Coordinate with which this Coordinate is being compared
Returns:
-1, zero, or 1 as this Coordinate is less than, equal to, or greater than the specified Coordinate

equals3D

public boolean equals3D(Coordinate other)
Returns true if other has the same values for x, y and z.

Parameters:
other - a Coordinate with which to do the 3D comparison.
Returns:
true if other is a Coordinate with the same values for x, y and z.

toString

public java.lang.String toString()
Returns a String of the form (x,y,z) .

Overrides:
toString in class java.lang.Object
Returns:
a String of the form (x,y,z)

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

distance

public double distance(Coordinate p)
Computes the 2-dimensional Euclidean distance to another location. The Z-ordinate is ignored.

Parameters:
p - a point
Returns:
the 2-dimensional Euclidean distance between the locations

hashCode

public int hashCode()
Gets a hashcode for this coordinate.

Overrides:
hashCode in class java.lang.Object
Returns:
a hashcode for this coordinate

hashCode

public static int hashCode(double x)
Computes a hash code for a double value, using the algorithm from Joshua Bloch's book Effective Java"

Returns:
a hashcode for the double value

JTS Topology Suite version 1.12