## com.vividsolutions.jts.geom
Class Coordinate

    java.lang.Object
      com.vividsolutions.jts.geom.Coordinate

All Implemented Interfaces:
  java.lang.Cloneable, java.lang.Comparable, java.io.Serializable

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.

`Coordinate`s 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 a value is not specified, constructed coordinates have a Z-ordinate of `NaN`. The standard comparison functions ignore the Z-ordinate.

Version:
  1.7
See Also:
  Serialized Form

Nested Class Summary
`static class` `Coordinate.DimensionalComparator` Compares two `Coordinate`s, allowing for either a 2-dimensional or 3-dimensional comparison, and handling NaN values correctly.

Field Summary
`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 `Coordinate`s 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 `Coordinate`s (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

### 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 `Coordinate`s (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 `Coordinate`s 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.

  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:
  - -1 : this.x < other.x || ((this.x == other.x) && (this.y < other.y))
  - 0 : this.x == other.x && this.y = other.y
  - 1 : this.x > other.x || ((this.x == other.x) && (this.y > other.y))
  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) .

  Returns:
    a `String` of the form (x,y,z)

### clone

    public java.lang.Object clone()

### 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.

  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