org.geotools.geometry
Class GeneralDirectPosition

java.lang.Object
  extended byorg.geotools.geometry.GeneralDirectPosition
All Implemented Interfaces:
java.lang.Cloneable, org.opengis.util.Cloneable, org.opengis.spatialschema.geometry.DirectPosition, org.opengis.spatialschema.geometry.geometry.Position, java.io.Serializable
Direct Known Subclasses:
TransformedDirectPosition

public class GeneralDirectPosition
extends java.lang.Object
implements org.opengis.spatialschema.geometry.DirectPosition, java.io.Serializable

Holds the coordinates for a position within some coordinate reference system. Since s, as data types, will often be included in larger objects (such as geometries) that have references to CoordinateReferenceSystem, the getCoordinateReferenceSystem() method may returns if this particular 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 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.

Since:
2.0
Version:
$Id: GeneralDirectPosition.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux
See Also:
Point2D, Serialized Form

Field Summary
 double[] ordinates
          The ordinates of the direct position.
 
Constructor Summary
GeneralDirectPosition(org.opengis.referencing.crs.CoordinateReferenceSystem crs)
          Constructs a position using the specified coordinate reference system.
GeneralDirectPosition(org.opengis.spatialschema.geometry.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(java.awt.geom.Point2D point)
          Constructs a position from the specified Point2D.
 
Method Summary
 java.lang.Object clone()
          Returns a deep copy of this position.
 org.opengis.referencing.crs.CoordinateReferenceSystem getCoordinateReferenceSystem()
          Returns the coordinate reference system in which the coordinate is given.
 double[] getCoordinates()
          Returns a sequence of numbers that hold the coordinate of this position in its reference system.
 int getDimension()
          The length of coordinate sequence (the number of entries).
 double getOrdinate(int dimension)
          Returns the ordinate at the specified dimension.
 org.opengis.spatialschema.geometry.DirectPosition getPosition()
          Returns always , the direct position for this position.
 int hashCode()
          Returns a hash value for this coordinate.
 void setCoordinateReferenceSystem(org.opengis.referencing.crs.CoordinateReferenceSystem crs)
          Set the coordinate reference system in which the coordinate is given.
 void setLocation(org.opengis.spatialschema.geometry.DirectPosition position)
          Set this coordinate to the specified direct position.
 void setLocation(GeneralDirectPosition position)
          Set this coordinate to the specified direct position.
 void setLocation(java.awt.geom.Point2D point)
          Set this coordinate to the specified Point2D.
 void setOrdinate(int dimension, double value)
          Sets the ordinate value along the specified dimension.
 java.awt.geom.Point2D toPoint2D()
          Returns a Point2D with the same coordinate as this direct position.
 java.lang.String toString()
          Returns a string representation of this coordinate.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

ordinates

public final double[] ordinates
The ordinates of the direct position.

Constructor Detail

GeneralDirectPosition

public GeneralDirectPosition(org.opengis.referencing.crs.CoordinateReferenceSystem crs)
Constructs a position using the specified coordinate reference system. The number of dimensions is inferred from the coordinate reference system.

Since:
2.2

GeneralDirectPosition

public GeneralDirectPosition(int numDim)
                      throws java.lang.NegativeArraySizeException
Constructs a position with the specified number of dimensions.

Parameters:
numDim - Number of dimensions.
Throws:
java.lang.NegativeArraySizeException - if is negative.

GeneralDirectPosition

public GeneralDirectPosition(double[] ordinates)
Constructs a position with the specified ordinates. The array will be copied.


GeneralDirectPosition

public GeneralDirectPosition(double x,
                             double y)
Constructs a 2D position from the specified ordinates. Despite their name, the (x,y) coordinates don't need to be oriented toward (East, North). See the DirectPosition2D javadoc for details.


GeneralDirectPosition

public GeneralDirectPosition(double x,
                             double y,
                             double z)
Constructs a 3D position from the specified ordinates. Despite their name, the (x,y,z) coordinates don't need to be oriented toward (East, North, Up).


GeneralDirectPosition

public GeneralDirectPosition(java.awt.geom.Point2D point)
Constructs a position from the specified Point2D.


GeneralDirectPosition

public GeneralDirectPosition(org.opengis.spatialschema.geometry.DirectPosition point)
Constructs a position initialized to the same values than the specified point.

Since:
2.2
Method Detail

getPosition

public org.opengis.spatialschema.geometry.DirectPosition getPosition()
Returns always , the direct position for this position.

Specified by:
getPosition in interface org.opengis.spatialschema.geometry.geometry.Position

getCoordinateReferenceSystem

public final org.opengis.referencing.crs.CoordinateReferenceSystem getCoordinateReferenceSystem()
Returns the coordinate reference system in which the coordinate is given. May be if this particular is included in a larger object with such a reference to a coordinate reference system.

Specified by:
getCoordinateReferenceSystem in interface org.opengis.spatialschema.geometry.DirectPosition
Returns:
The coordinate reference system, or .

setCoordinateReferenceSystem

public void setCoordinateReferenceSystem(org.opengis.referencing.crs.CoordinateReferenceSystem crs)
                                  throws org.opengis.spatialschema.geometry.MismatchedDimensionException
Set the coordinate reference system in which the coordinate is given.

Parameters:
crs - The new coordinate reference system, or .
Throws:
org.opengis.spatialschema.geometry.MismatchedDimensionException - if the specified CRS doesn't have the expected number of dimensions.

getDimension

public final int getDimension()
The length of coordinate sequence (the number of entries). This may be less than or equal to the dimensionality of the coordinate reference system.

Specified by:
getDimension in interface org.opengis.spatialschema.geometry.DirectPosition
Returns:
The dimensionality of this position.

getCoordinates

public final double[] getCoordinates()
Returns a sequence of numbers that hold the coordinate of this position in its reference system.

Specified by:
getCoordinates in interface org.opengis.spatialschema.geometry.DirectPosition
Returns:
A copy of the coordinates.

getOrdinate

public final double getOrdinate(int dimension)
                         throws java.lang.IndexOutOfBoundsException
Returns the ordinate at the specified dimension.

Specified by:
getOrdinate in interface org.opengis.spatialschema.geometry.DirectPosition
Parameters:
dimension - The dimension in the range 0 to dimension-1.
Returns:
The coordinate at the specified dimension.
Throws:
java.lang.IndexOutOfBoundsException - if the specified dimension is out of bounds.

setOrdinate

public final void setOrdinate(int dimension,
                              double value)
                       throws java.lang.IndexOutOfBoundsException
Sets the ordinate value along the specified dimension.

Specified by:
setOrdinate in interface org.opengis.spatialschema.geometry.DirectPosition
Parameters:
dimension - the dimension for the ordinate of interest.
value - the ordinate value of interest.
Throws:
java.lang.IndexOutOfBoundsException - if the specified dimension is out of bounds.

setLocation

public final void setLocation(org.opengis.spatialschema.geometry.DirectPosition position)
                       throws org.opengis.spatialschema.geometry.MismatchedDimensionException
Set this coordinate to the specified direct position. If the specified position contains a coordinate reference system, then the CRS for this position will be set to the CRS of the specified position.

Parameters:
position - The new position for this point.
Throws:
org.opengis.spatialschema.geometry.MismatchedDimensionException - if this point doesn't have the expected dimension.
Since:
2.2

setLocation

public final void setLocation(GeneralDirectPosition position)
                       throws org.opengis.spatialschema.geometry.MismatchedDimensionException
Set this coordinate to the specified direct position. This method is identical to setLocation(DirectPosition), but is slightly faster in the special case of an implementation.

Parameters:
position - The new position for this point.
Throws:
org.opengis.spatialschema.geometry.MismatchedDimensionException - if this point doesn't have the expected dimension.

setLocation

public final void setLocation(java.awt.geom.Point2D point)
                       throws org.opengis.spatialschema.geometry.MismatchedDimensionException
Set this coordinate to the specified Point2D. This coordinate must be two-dimensional.

Parameters:
point - The new coordinate for this point.
Throws:
org.opengis.spatialschema.geometry.MismatchedDimensionException - if this coordinate point is not two-dimensional.

toPoint2D

public java.awt.geom.Point2D toPoint2D()
                                throws java.lang.IllegalStateException
Returns a Point2D with the same coordinate as this direct position. This is a convenience method for interoperability with Java2D.

Throws:
java.lang.IllegalStateException - if this coordinate point is not two-dimensional.

toString

public java.lang.String toString()
Returns a string representation of this coordinate. The default implementation formats this coordinate using a shared instance of 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.


hashCode

public int hashCode()
Returns a hash value for this coordinate. This value need not remain consistent between different implementations of the same class.


clone

public java.lang.Object clone()
Returns a deep copy of this position.

Specified by:
clone in interface org.opengis.spatialschema.geometry.DirectPosition


Copyright © GeoTools. All Rights Reserved.