public class DirectPosition2D extends Point2D.Double implements DirectPosition, Serializable, Cloneable
Note 1:
This class inherits x and y fields. But despite their names, they don't need to be oriented toward East and North. The (x,y) axis can have any orientation and should be understood as "ordinate 0" and "ordinate 1" values instead. This is not specific to this implementation; in Java2D too, the visual axis orientation depend on the affine transform in the graphics context.The rational for avoiding axis orientation restriction is that other
DirectPosition
implementation do not have such restriction, and it would be hard to generalize (what to do with North-East direction?).
Note 2:
Do not mix instances of this class with ordinaryPoint2D
instances in aHashSet
or asHashMap
keys. It is not possible to meet bothPoint2D.hashCode()
andDirectPosition.hashCode()
contract, and this class choose to implements the later. Concequently,hashCode()
is inconsistent withPoint2D.equals(java.lang.Object)
(but is consistent withDirectPosition.equals(java.lang.Object)
).In other words, it is safe to add instances of
DirectPosition2D
in aHashSet<DirectPosition>
, but it is unsafe to add them in aHashSet<Point2D>
. Collections that do not rely onObject.hashCode()
, likeArrayList
, are safe in all cases.
DirectPosition1D
,
GeneralDirectPosition
,
Point2D
,
Serialized FormPoint2D.Double, Point2D.Float
x, y
Constructor and Description |
---|
DirectPosition2D()
Constructs a position initialized to (0,0) with a
null coordinate reference system. |
DirectPosition2D(CoordinateReferenceSystem crs)
Constructs a position with the specified coordinate reference system.
|
DirectPosition2D(CoordinateReferenceSystem crs,
double x,
double y)
Constructs a 2D position from the specified ordinates in the specified CRS.
|
DirectPosition2D(DirectPosition point)
Constructs a position initialized to the same values than the specified point.
|
DirectPosition2D(double x,
double y)
Constructs a 2D position from the specified ordinates.
|
DirectPosition2D(Point2D point)
Constructs a position from the specified
Point2D . |
Modifier and Type | Method and Description |
---|---|
DirectPosition2D |
clone()
Returns a clone of this point.
|
boolean |
equals(Object object)
Compares this point with the specified object for equality.
|
double[] |
getCoordinate()
Returns a sequence of numbers that hold the coordinate of this position in its reference
system.
|
CoordinateReferenceSystem |
getCoordinateReferenceSystem()
Returns the coordinate reference system in which the coordinate is given.
|
int |
getDimension()
The length of coordinate sequence (the number of entries).
|
DirectPosition |
getDirectPosition()
Returns always
this , the direct position for this position. |
double |
getOrdinate(int dimension)
Returns the ordinate at the specified dimension.
|
int |
hashCode()
Returns a hash value for this coordinate.
|
void |
setCoordinateReferenceSystem(CoordinateReferenceSystem crs)
Set the coordinate reference system in which the coordinate is given.
|
void |
setLocation(DirectPosition position)
Set this coordinate to the specified direct position.
|
void |
setOrdinate(int dimension,
double value)
Sets the ordinate value along the specified dimension.
|
Point2D |
toPoint2D()
Returns a
Point2D with the same coordinate as this direct position. |
String |
toString()
Returns a string representation of this coordinate.
|
getX, getY, setLocation
distance, distance, distance, distanceSq, distanceSq, distanceSq, setLocation
public DirectPosition2D()
null
coordinate reference system.public DirectPosition2D(CoordinateReferenceSystem crs)
crs
- The coordinate reference system, or null
.public DirectPosition2D(double x, double y)
x
- The x value.y
- The y value.public DirectPosition2D(CoordinateReferenceSystem crs, double x, double y)
crs
- The coordinate reference system, or null
.x
- The x value.y
- The y value.public DirectPosition2D(Point2D point)
Point2D
.point
- The point to copy.public DirectPosition2D(DirectPosition point)
point
- The point to copy.public DirectPosition getDirectPosition()
this
, the direct position for this position.getDirectPosition
in interface Position
this
).public final CoordinateReferenceSystem getCoordinateReferenceSystem()
null
if this particular DirectPosition
is included in a larger object with such a
reference to a coordinate reference system.getCoordinateReferenceSystem
in interface DirectPosition
null
.public void setCoordinateReferenceSystem(CoordinateReferenceSystem crs)
crs
- The new coordinate reference system, or null
.public final int getDimension()
DirectPosition2D
objects.getDimension
in interface DirectPosition
public double[] getCoordinate()
getCoordinate
in interface DirectPosition
public final double getOrdinate(int dimension) throws IndexOutOfBoundsException
getOrdinate
in interface DirectPosition
dimension
- The dimension in the range 0 to 1 inclusive.IndexOutOfBoundsException
- if the specified dimension is out of bounds.public final void setOrdinate(int dimension, double value) throws IndexOutOfBoundsException
setOrdinate
in interface DirectPosition
dimension
- the dimension for the ordinate of interest.value
- the ordinate value of interest.IndexOutOfBoundsException
- if the specified dimension is out of bounds.public void setLocation(DirectPosition position) throws MismatchedDimensionException
position
- The new position for this point.MismatchedDimensionException
- if this point doesn't have the expected dimension.public Point2D toPoint2D()
Point2D
with the same coordinate as this direct position.public String toString()
CoordinateFormat
. This is
okay for occasional formatting (for example for debugging purpose). But if there is a lot of
positions to format, users will get better performance and more control by using their own
instance of CoordinateFormat
.toString
in class Point2D.Double
public int hashCode()
DirectPosition.hashCode()
contract, not the Point2D.hashCode()
contract.hashCode
in interface DirectPosition
hashCode
in class Point2D
public boolean equals(Object object)
DirectPosition
interface, then the comparaison is performed as specified in its
DirectPosition.equals(java.lang.Object)
contract. Otherwise the comparaison is performed as specified
in Point2D.equals(java.lang.Object)
.equals
in interface DirectPosition
equals
in class Point2D
object
- The object to compare with this position.true
if the given object is equals to this position.public DirectPosition2D clone()
clone
in class Point2D
Object.clone()
Copyright © 1996–2019 Geotools. All rights reserved.