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
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.
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.
Apart from the basic accessor functions, JTS supports
only specific operations involving the Z-ordinate.
Modifier and Type | Class | Description |
---|---|---|
static class |
Coordinate.DimensionalComparator |
Compares two
Coordinate s, allowing for either a 2-dimensional
or 3-dimensional comparison, and handling NaN values correctly. |
Modifier and Type | Field | Description |
---|---|---|
static double |
NULL_ORDINATE |
The value used to indicate a null or missing ordinate value.
|
double |
x |
The x-coordinate.
|
static int |
X |
Standard ordinate index values
|
double |
y |
The y-coordinate.
|
static int |
Y |
|
double |
z |
The z-coordinate.
|
static int |
Z |
Constructor | Description |
---|---|
Coordinate() |
Constructs a
Coordinate at (0,0,NaN). |
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). |
Coordinate(Coordinate c) |
Constructs a
Coordinate having the same (x,y,z) values as
other . |
Modifier and Type | Method | Description |
---|---|---|
java.lang.Object |
clone() |
|
int |
compareTo(java.lang.Object o) |
Compares this
Coordinate with the specified Coordinate for order. |
Coordinate |
copy() |
|
double |
distance(Coordinate c) |
Computes the 2-dimensional Euclidean distance to another location.
|
double |
distance3D(Coordinate c) |
Computes the 3-dimensional Euclidean distance to another location.
|
boolean |
equalInZ(Coordinate c,
double tolerance) |
Tests if another coordinate has the same value for Z, within a tolerance.
|
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 |
equals2D(Coordinate c,
double tolerance) |
Tests if another coordinate has the same values for the X and Y ordinates.
|
boolean |
equals3D(Coordinate other) |
Tests if another coordinate has the same values for the X, Y and Z ordinates.
|
double |
getOrdinate(int ordinateIndex) |
Gets the ordinate value for the given index.
|
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 . |
void |
setOrdinate(int ordinateIndex,
double value) |
Sets the ordinate for the given index
to a given value.
|
java.lang.String |
toString() |
Returns a
String of the form (x,y,z) . |
public static final double NULL_ORDINATE
public static final int X
public static final int Y
public static final int Z
public double x
public double y
public double z
public Coordinate(double x, double y, double z)
Coordinate
at (x,y,z).x
- the x-valuey
- the y-valuez
- the z-valuepublic Coordinate()
Coordinate
at (0,0,NaN).public Coordinate(Coordinate c)
Coordinate
having the same (x,y,z) values as
other
.c
- the Coordinate
to copy.public Coordinate(double x, double y)
Coordinate
at (x,y,NaN).x
- the x-valuey
- the y-valuepublic void setCoordinate(Coordinate other)
Coordinate
s (x,y,z) values to that of other
.other
- the Coordinate
to copypublic double getOrdinate(int ordinateIndex)
ordinateIndex
- the ordinate indexjava.lang.IllegalArgumentException
- if the index is not validpublic void setOrdinate(int ordinateIndex, double value)
X
, Y
, and Z
.ordinateIndex
- the ordinate indexvalue
- the value to setjava.lang.IllegalArgumentException
- if the index is not validpublic boolean equals2D(Coordinate other)
Coordinate
s
are equal.other
- a Coordinate
with which to do the 2D comparison.true
if the x- and y-coordinates are equal; the
z-coordinates do not have to be equal.public boolean equals2D(Coordinate c, double tolerance)
c
- a Coordinate
with which to do the 2D comparison.other
is a Coordinate
with the same values for X and Y.public boolean equals3D(Coordinate other)
other
- a Coordinate
with which to do the 3D comparison.other
is a Coordinate
with the same values for X, Y and Z.public boolean equalInZ(Coordinate c, double tolerance)
c
- a coordinatetolerance
- the tolerance valuepublic boolean equals(java.lang.Object other)
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.equals
in class java.lang.Object
other
- a Coordinate
with which to do the comparison.true
if other
is a Coordinate
with the same values for the x and y ordinates.public int compareTo(java.lang.Object o)
Coordinate
with the specified Coordinate
for order.
This method ignores the z value when making the comparison.
Returns:
compareTo
in interface java.lang.Comparable
o
- the Coordinate
with which this Coordinate
is being comparedCoordinate
is less than, equal to, or greater than the specified Coordinate
public java.lang.String toString()
String
of the form (x,y,z) .toString
in class java.lang.Object
String
of the form (x,y,z)public java.lang.Object clone()
public Coordinate copy()
public double distance(Coordinate c)
c
- a pointpublic double distance3D(Coordinate c)
c
- a coordinatepublic int hashCode()
hashCode
in class java.lang.Object
public static int hashCode(double x)
Copyright © 2018. All rights reserved.