org.geotoolkit.referencing.datum
Class DefaultGeodeticDatum

Object
  extended by FormattableObject
      extended by AbstractIdentifiedObject
          extended by AbstractDatum
              extended by DefaultGeodeticDatum
All Implemented Interfaces:
Serializable, Formattable, LenientComparable, Datum, GeodeticDatum, IdentifiedObject

@Immutable
public class DefaultGeodeticDatum
extends AbstractDatum
implements GeodeticDatum

Defines the location and precise orientation in 3-dimensional space of a defined ellipsoid (or sphere) that approximates the shape of the earth. Used also for Cartesian coordinate system centered in this ellipsoid (or sphere).

Since:
1.2
Version:
3.18
Author:
Martin Desruisseaux (IRD, Geomatys)
See Also:
Ellipsoid, PrimeMeridian, Serialized Form
Module:
referencing/geotk-referencing (download)    View source code for this class

Field Summary
static String BURSA_WOLF_KEY
          The "bursaWolf" property for datum shifts.
static DefaultGeodeticDatum SPHERE
          Default spherical datum.
static DefaultGeodeticDatum WGS72
          Default WGS 1972 datum (EPSG:6322).
static DefaultGeodeticDatum WGS84
          Default WGS 1984 datum (EPSG:6326).
 
Fields inherited from class AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
 
Fields inherited from class FormattableObject
EPSG, GEOTIFF, INTERNAL, OGC, SINGLE_LINE
 
Fields inherited from interface Datum
ANCHOR_POINT_KEY, DOMAIN_OF_VALIDITY_KEY, REALIZATION_EPOCH_KEY, SCOPE_KEY
 
Fields inherited from interface IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
 
Constructor Summary
DefaultGeodeticDatum(GeodeticDatum datum)
          Constructs a new datum with the same values than the specified one.
DefaultGeodeticDatum(Map<String,?> properties, Ellipsoid ellipsoid)
          Constructs a geodetic datum using the Greenwich prime meridian.
DefaultGeodeticDatum(Map<String,?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian)
          Constructs a geodetic datum from a set of properties.
DefaultGeodeticDatum(String name, Ellipsoid ellipsoid)
          Constructs a geodetic datum using the Greenwich prime meridian.
DefaultGeodeticDatum(String name, Ellipsoid ellipsoid, PrimeMeridian primeMeridian)
          Constructs a geodetic datum from a name and the given prime meridian.
 
Method Summary
protected  int computeHashCode()
          Computes a hash value for this identified object.
 boolean equals(Object object, ComparisonMode mode)
          Compare this datum with the specified object for equality.
 String formatWKT(Formatter formatter)
          Formats the inner part of a Well Known Text (WKT) element.
static Matrix getAffineTransform(GeodeticDatum source, GeodeticDatum target)
          Returns a matrix that can be used to define a transformation to the specified datum.
 BursaWolfParameters[] getBursaWolfParameters()
          Returns all Bursa Wolf parameters specified in the properties map at construction time.
 BursaWolfParameters getBursaWolfParameters(GeodeticDatum target)
          Returns Bursa Wolf parameters for a datum shift toward the specified target, or null if none.
 Ellipsoid getEllipsoid()
          Returns the ellipsoid.
 PrimeMeridian getPrimeMeridian()
          Returns the prime meridian.
static boolean isWGS84(Datum datum)
          Returns true if the specified object is equals (at least on computation purpose) to the WGS84 datum.
static DefaultGeodeticDatum wrap(GeodeticDatum object)
          Returns a Geotk datum implementation with the same values than the given arbitrary implementation.
 
Methods inherited from class AbstractDatum
getAnchorPoint, getDomainOfValidity, getRealizationEpoch, getScope
 
Methods inherited from class AbstractIdentifiedObject
equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, hashCode, nameMatches, nameMatches, nameMatches
 
Methods inherited from class FormattableObject
getDefaultIndentation, print, setDefaultIndentation, toString, toWKT, toWKT, toWKT
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface Datum
getAnchorPoint, getDomainOfValidity, getRealizationEpoch, getScope
 
Methods inherited from interface IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
 

Field Detail

WGS84

public static final DefaultGeodeticDatum WGS84
Default WGS 1984 datum (EPSG:6326). Prime meridian is Greenwich. This datum is used in GPS systems and is the default for most org.geotoolkit packages.

See Also:
DefaultEllipsoid.WGS84, DefaultGeographicCRS.WGS84

WGS72

public static final DefaultGeodeticDatum WGS72
Default WGS 1972 datum (EPSG:6322). Prime meridian is Greenwich. This datum is used, together with WGS84, in Earth Gravitational Model.

Since:
3.00
See Also:
DefaultEllipsoid.WGS72

SPHERE

public static final DefaultGeodeticDatum SPHERE
Default spherical datum. Prime meridian is Greenwich.
Note: This datum is close, but not identical, to the datum based on GRS 1980 Authalic Sphere (EPSG:6047). This datum uses a sphere radius of 6371000 metres, while the GRS 1980 Authalic Sphere uses a sphere radius of 6371007 metres.

Since:
3.15
See Also:
DefaultEllipsoid.SPHERE, DefaultGeographicCRS.SPHERE

BURSA_WOLF_KEY

public static final String BURSA_WOLF_KEY
The "bursaWolf" property for datum shifts.

See Also:
Constant Field Values
Constructor Detail

DefaultGeodeticDatum

public DefaultGeodeticDatum(GeodeticDatum datum)
Constructs a new datum with the same values than the specified one. This copy constructor provides a way to wrap an arbitrary implementation into a Geotk one or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API. This constructor performs a shallow copy, i.e. the properties are not cloned.

Parameters:
datum - The datum to copy.
Since:
2.2

DefaultGeodeticDatum

public DefaultGeodeticDatum(String name,
                            Ellipsoid ellipsoid)
Constructs a geodetic datum using the Greenwich prime meridian. This is a convenience constructor for the very common case where the prime meridian is the Greenwich one.

Parameters:
name - The datum name.
ellipsoid - The ellipsoid.
Since:
3.15

DefaultGeodeticDatum

public DefaultGeodeticDatum(Map<String,?> properties,
                            Ellipsoid ellipsoid)
Constructs a geodetic datum using the Greenwich prime meridian. This is a convenience constructor for the very common case where the prime meridian is the Greenwich one.

Parameters:
properties - Set of properties. Should contains at least "name".
ellipsoid - The ellipsoid.
Since:
3.15

DefaultGeodeticDatum

public DefaultGeodeticDatum(String name,
                            Ellipsoid ellipsoid,
                            PrimeMeridian primeMeridian)
Constructs a geodetic datum from a name and the given prime meridian.

Parameters:
name - The datum name.
ellipsoid - The ellipsoid.
primeMeridian - The prime meridian. If omitted, the default is Greenwich.

DefaultGeodeticDatum

public DefaultGeodeticDatum(Map<String,?> properties,
                            Ellipsoid ellipsoid,
                            PrimeMeridian primeMeridian)
Constructs a geodetic datum from a set of properties. The properties map is given unchanged to the super-class constructor. Additionally, the following properties are understood by this constructor:

Property name Value type Value given to
 "bursaWolf"   BursaWolfParameters or an array of those   getBursaWolfParameters()

Parameters:
properties - Set of properties. Should contains at least "name".
ellipsoid - The ellipsoid.
primeMeridian - The prime meridian. If omitted, the default is Greenwich.
Method Detail

wrap

public static DefaultGeodeticDatum wrap(GeodeticDatum object)
Returns a Geotk datum implementation with the same values than the given arbitrary implementation. If the given object is null, then this method returns null. Otherwise if the given object is already a Geotk implementation, then the given object is returned unchanged. Otherwise a new Geotk implementation is created and initialized to the attribute values of the given object.

Parameters:
object - The object to wrap in a Geotk implementation, or null if none.
Returns:
A Geotk implementation containing the values of the given object (may be the given object itself), or null if the argument was null.
Since:
3.18

getEllipsoid

public Ellipsoid getEllipsoid()
Returns the ellipsoid.

Specified by:
getEllipsoid in interface GeodeticDatum

getPrimeMeridian

public PrimeMeridian getPrimeMeridian()
Returns the prime meridian.

Specified by:
getPrimeMeridian in interface GeodeticDatum

getBursaWolfParameters

public BursaWolfParameters[] getBursaWolfParameters()
Returns all Bursa Wolf parameters specified in the properties map at construction time.

Returns:
The Bursa Wolf parameters, or an empty array if none.
Since:
2.4

getBursaWolfParameters

public BursaWolfParameters getBursaWolfParameters(GeodeticDatum target)
Returns Bursa Wolf parameters for a datum shift toward the specified target, or null if none. This method search only for Bursa-Wolf parameters explicitly specified in the properties map at construction time. This method doesn't try to infer a set of parameters from indirect informations. For example it doesn't try to inverse the parameters specified in the target datum if none were found in this datum. If such an elaborated search is wanted, use getAffineTransform(org.opengis.referencing.datum.GeodeticDatum, org.opengis.referencing.datum.GeodeticDatum) instead.

Parameters:
target - The target geodetic datum.
Returns:
Bursa Wolf parameters from this datum to the given target datum, or null if none.

getAffineTransform

public static Matrix getAffineTransform(GeodeticDatum source,
                                        GeodeticDatum target)
Returns a matrix that can be used to define a transformation to the specified datum. If no transformation path is found, then this method returns null.

Parameters:
source - The source datum.
target - The target datum.
Returns:
An affine transform from source to target, or null if none.
See Also:
BursaWolfParameters.getAffineTransform()

isWGS84

public static boolean isWGS84(Datum datum)
Returns true if the specified object is equals (at least on computation purpose) to the WGS84 datum. This method may conservatively returns false if the specified datum is uncertain (for example because it come from an other implementation).

Parameters:
datum - The datum to inspect.
Returns:
true if the given datum is equal to WGS84 for computational purpose.

equals

public boolean equals(Object object,
                      ComparisonMode mode)
Compare this datum with the specified object for equality.

Specified by:
equals in interface LenientComparable
Overrides:
equals in class AbstractDatum
Parameters:
object - The object to compare to this.
mode - STRICT for performing a strict comparison, or IGNORE_METADATA for comparing only properties relevant to transformations.
Returns:
true if both objects are equal.

computeHashCode

protected int computeHashCode()
Computes a hash value for this identified object. This method is invoked by AbstractIdentifiedObject.hashCode() when first needed.

Implementation specific feature
In the Geotk implementation, the name, identifiers and remarks are not used for hash code computation. Consequently two identified objects will return the same hash value if they are equal in the sense of equals(…, ComparisonMode.IGNORE_METADATA). This feature allows users to implement metadata-insensitive HashMap.

Overrides:
computeHashCode in class AbstractIdentifiedObject
Returns:
The hash code value. This value may change between different execution of the Geotk library.

formatWKT

public String formatWKT(Formatter formatter)
Formats the inner part of a Well Known Text (WKT) element.

Specified by:
formatWKT in interface Formattable
Overrides:
formatWKT in class AbstractDatum
Parameters:
formatter - The formatter to use.
Returns:
The WKT element name, which is "DATUM".
See Also:
FormattableObject.toWKT(), FormattableObject.toString()


Copyright © 2009-2011 Geotoolkit.org. All Rights Reserved.