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
DirectPositionimplementation 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 ordinaryPoint2Dinstances in aHashSetor asHashMapkeys. 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
DirectPosition2Din 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.Floatx, 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, setLocationdistance, distance, distance, distanceSq, distanceSq, distanceSq, setLocationpublic 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 Positionthis).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 DirectPositionnull.public void setCoordinateReferenceSystem(CoordinateReferenceSystem crs)
crs - The new coordinate reference system, or null.public final int getDimension()
DirectPosition2D objects.getDimension in interface DirectPositionpublic double[] getCoordinate()
getCoordinate in interface DirectPositionpublic final double getOrdinate(int dimension)
throws IndexOutOfBoundsException
getOrdinate in interface DirectPositiondimension - 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 DirectPositiondimension - 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.Doublepublic int hashCode()
DirectPosition.hashCode() contract, not the Point2D.hashCode() contract.hashCode in interface DirectPositionhashCode in class Point2Dpublic 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 DirectPositionequals in class Point2Dobject - The object to compare with this position.true if the given object is equals to this position.public DirectPosition2D clone()
clone in class Point2DObject.clone()Copyright © 1996–2019 Geotools. All rights reserved.