public class GeneralDirectPosition extends AbstractDirectPosition implements Serializable, Cloneable
DirectPosition
s, as data types, will often be included in larger objects (such as geometries) that have references to CoordinateReferenceSystem
, the getCoordinateReferenceSystem()
method may returns null
if this particular DirectPosition
is included in a larger object with such a
reference to a coordinate reference system. In this case,
the cordinate reference system is implicitly assumed to take on the value of the containing
object's CoordinateReferenceSystem
.
This particular implementation of DirectPosition
is said "General" because it uses an
array of ordinates of an arbitrary length. If the direct position is know
to be always two-dimensional, then DirectPosition2D
may provides a more efficient
implementation.
Most methods in this implementation are final for performance reason.
DirectPosition1D
,
DirectPosition2D
,
Point2D
,
Serialized FormModifier and Type | Field and Description |
---|---|
double[] |
ordinates
The ordinates of the direct position.
|
Constructor and Description |
---|
GeneralDirectPosition(CoordinateReferenceSystem crs)
Constructs a position using the specified coordinate reference system.
|
GeneralDirectPosition(DirectPosition point)
Constructs a position initialized to the same values than the specified point.
|
GeneralDirectPosition(double[] ordinates)
Constructs a position with the specified ordinates.
|
GeneralDirectPosition(double x,
double y)
Constructs a 2D position from the specified ordinates.
|
GeneralDirectPosition(double x,
double y,
double z)
Constructs a 3D position from the specified ordinates.
|
GeneralDirectPosition(int numDim)
Constructs a position with the specified number of dimensions.
|
GeneralDirectPosition(Point2D point)
Constructs a position from the specified
Point2D . |
Modifier and Type | Method and Description |
---|---|
GeneralDirectPosition |
clone()
Returns a deep copy of this position.
|
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).
|
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 |
setLocation(GeneralDirectPosition position)
Set this coordinate to the specified direct position.
|
void |
setLocation(Point2D point)
Set this coordinate to the specified
Point2D . |
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. |
equals, getDirectPosition, setPosition, toString
public GeneralDirectPosition(CoordinateReferenceSystem crs)
crs
- The coordinate reference system to be given to this position.public GeneralDirectPosition(int numDim) throws NegativeArraySizeException
numDim
- Number of dimensions.NegativeArraySizeException
- if numDim
is negative.public GeneralDirectPosition(double[] ordinates)
ordinates
array will be
copied.ordinates
- The ordinate values to copy.public GeneralDirectPosition(double x, double y)
DirectPosition2D
javadoc for details.x
- The first ordinate value.y
- The second ordinate value.public GeneralDirectPosition(double x, double y, double z)
x
- The first ordinate value.y
- The second ordinate value.z
- The third ordinate value.public GeneralDirectPosition(Point2D point)
Point2D
.point
- The position to copy.public GeneralDirectPosition(DirectPosition point)
point
- The position to copy.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) throws MismatchedDimensionException
crs
- The new coordinate reference system, or null
.MismatchedDimensionException
- if the specified CRS doesn't have the expected number of
dimensions.public final int getDimension()
getDimension
in interface DirectPosition
public final double[] getCoordinate()
getCoordinate
in interface DirectPosition
getCoordinate
in class AbstractDirectPosition
public final double getOrdinate(int dimension) throws IndexOutOfBoundsException
getOrdinate
in interface DirectPosition
dimension
- The dimension in the range 0 to dimension-1.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 final void setLocation(DirectPosition position) throws MismatchedDimensionException
position
- The new position for this point.MismatchedDimensionException
- if this point doesn't have the expected dimension.public final void setLocation(GeneralDirectPosition position) throws MismatchedDimensionException
setLocation(DirectPosition)
, but is slightly faster in the special case of an GeneralDirectPosition
implementation.position
- The new position for this point.MismatchedDimensionException
- if this point doesn't have the expected dimension.public final void setLocation(Point2D point) throws MismatchedDimensionException
Point2D
. This coordinate must be
two-dimensional.point
- The new coordinate for this point.MismatchedDimensionException
- if this coordinate point is not two-dimensional.public Point2D toPoint2D() throws IllegalStateException
Point2D
with the same coordinate as this direct position. This is a
convenience method for interoperability with Java2D.IllegalStateException
- if this coordinate point is not two-dimensional.public int hashCode()
hashCode
in interface DirectPosition
hashCode
in class AbstractDirectPosition
public GeneralDirectPosition clone()
clone
in class Object
Object.clone()
Copyright © 1996–2019 Geotools. All rights reserved.