Package org.locationtech.jts.geom
Class Coordinate
java.lang.Object
org.locationtech.jts.geom.Coordinate
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparable
- Direct Known Subclasses:
ExtendedCoordinate
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.
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.
- Version:
- 1.7
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Compares twoCoordinate
s, allowing for either a 2-dimensional or 3-dimensional comparison, and handling NaN values correctly. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final double
The value used to indicate a null or missing ordinate value.private static final long
double
The x-coordinate.static final int
Standard ordinate index valuesdouble
The y-coordinate.static final int
double
The z-coordinate.static final int
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs aCoordinate
at (0,0,NaN).Coordinate
(double x, double y) Constructs aCoordinate
at (x,y,NaN).Coordinate
(double x, double y, double z) Constructs aCoordinate
at (x,y,z).Constructs aCoordinate
having the same (x,y,z) values asother
. -
Method Summary
Modifier and TypeMethodDescriptionclone()
int
Compares thisCoordinate
with the specifiedCoordinate
for order.copy()
double
Computes the 2-dimensional Euclidean distance to another location.double
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
Returnstrue
ifother
has the same values for the x and y ordinates.boolean
equals2D
(Coordinate other) Returns whether the planar projections of the twoCoordinate
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 thisCoordinate
s (x,y,z) values to that ofother
.void
setOrdinate
(int ordinateIndex, double value) Sets the ordinate for the given index to a given value.toString()
Returns aString
of the form (x,y,z) .
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
NULL_ORDINATE
public static final double NULL_ORDINATEThe 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:
-
X
public static final int XStandard ordinate index values- See Also:
-
Y
public static final int Y- See Also:
-
Z
public static final int Z- See Also:
-
x
public double xThe x-coordinate. -
y
public double yThe y-coordinate. -
z
public double zThe z-coordinate.
-
-
Constructor Details
-
Coordinate
public Coordinate(double x, double y, double z) Constructs aCoordinate
at (x,y,z).- Parameters:
x
- the x-valuey
- the y-valuez
- the z-value
-
Coordinate
public Coordinate()Constructs aCoordinate
at (0,0,NaN). -
Coordinate
Constructs aCoordinate
having the same (x,y,z) values asother
.- Parameters:
c
- theCoordinate
to copy.
-
Coordinate
public Coordinate(double x, double y) Constructs aCoordinate
at (x,y,NaN).- Parameters:
x
- the x-valuey
- the y-value
-
-
Method Details
-
setCoordinate
Sets thisCoordinate
s (x,y,z) values to that ofother
.- Parameters:
other
- theCoordinate
to copy
-
getOrdinate
public double getOrdinate(int ordinateIndex) - Parameters:
ordinateIndex
- the ordinate index- Returns:
- the value of the ordinate
- Throws:
IllegalArgumentException
- if the index is not valid
-
setOrdinate
public void setOrdinate(int ordinateIndex, double value) Sets the ordinate for the given index to a given value. The supported values for the index areX
,Y
, andZ
.- Parameters:
ordinateIndex
- the ordinate indexvalue
- the value to set- Throws:
IllegalArgumentException
- if the index is not valid
-
equals2D
Returns whether the planar projections of the twoCoordinate
s are equal.- Parameters:
other
- aCoordinate
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.
-
equals2D
Tests if another coordinate has the same values for the X and Y ordinates. The Z ordinate is ignored.- Parameters:
c
- aCoordinate
with which to do the 2D comparison.- Returns:
- true if
other
is aCoordinate
with the same values for X and Y.
-
equals3D
Tests if another coordinate has the same values for the X, Y and Z ordinates.- Parameters:
other
- aCoordinate
with which to do the 3D comparison.- Returns:
- true if
other
is aCoordinate
with the same values for X, Y and Z.
-
equalInZ
Tests if another coordinate has the same value for Z, within a tolerance.- Parameters:
c
- a coordinatetolerance
- the tolerance value- Returns:
- true if the Z ordinates are within the given tolerance
-
equals
Returnstrue
ifother
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. -
compareTo
Compares thisCoordinate
with the specifiedCoordinate
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))
- Specified by:
compareTo
in interfaceComparable
- Parameters:
o
- theCoordinate
with which thisCoordinate
is being compared- Returns:
- -1, zero, or 1 as this
Coordinate
is less than, equal to, or greater than the specifiedCoordinate
-
toString
Returns aString
of the form (x,y,z) . -
clone
-
copy
-
distance
Computes the 2-dimensional Euclidean distance to another location. The Z-ordinate is ignored.- Parameters:
c
- a point- Returns:
- the 2-dimensional Euclidean distance between the locations
-
distance3D
Computes the 3-dimensional Euclidean distance to another location.- Parameters:
c
- a coordinate- Returns:
- the 3-dimensional Euclidean distance between the locations
-
hashCode
public int hashCode()Gets 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
-