Package org.geotools.referencing.datum
Class DefaultGeodeticDatum
- Object
-
- Formattable
-
- AbstractIdentifiedObject
-
- AbstractDatum
-
- DefaultGeodeticDatum
-
- All Implemented Interfaces:
Serializable
,Datum
,GeodeticDatum
,IdentifiedObject
,PROJFormattable
public class DefaultGeodeticDatum extends AbstractDatum implements GeodeticDatum, PROJFormattable
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:
- 2.1
- Author:
- Martin Desruisseaux (IRD)
- See Also:
Ellipsoid
,PrimeMeridian
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static String
BURSA_WOLF_KEY
The"bursaWolf"
property for datum shifts.static DefaultGeodeticDatum
WGS84
The default WGS 1984 datum.-
Fields inherited from class AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
-
Fields inherited from class Formattable
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
Constructors Constructor Description DefaultGeodeticDatum(String name, Ellipsoid ellipsoid, PrimeMeridian primeMeridian)
Constructs a geodetic datum from a name.DefaultGeodeticDatum(Map<String,?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian)
Constructs a geodetic datum from a set of properties.DefaultGeodeticDatum(GeodeticDatum datum)
Constructs a new datum with the same values than the specified one.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(AbstractIdentifiedObject object, boolean compareMetadata)
Compare this datum with the specified object for equality.String
formatPROJ(PROJFormatter formatter)
Format the inner part of a PROJFormattable object.protected String
formatWKT(Formatter formatter)
Format 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 theproperties
map at construction time.BursaWolfParameters
getBursaWolfParameters(GeodeticDatum target)
Returns Bursa Wolf parameters for a datum shift toward the specified target, ornull
if none.Ellipsoid
getEllipsoid()
Returns the ellipsoid.PrimeMeridian
getPrimeMeridian()
Returns the prime meridian.int
hashCode()
Returns a hash value for this geodetic datum.static boolean
isWGS84(Datum datum)
Returnstrue
if the specified object is equals (at least on computation purpose) to theWGS84
datum.-
Methods inherited from class AbstractDatum
getAnchorPoint, getDomainOfValidity, getRealizationEpoch, getScope
-
Methods inherited from class AbstractIdentifiedObject
asSet, ensureAngularUnit, ensureLinearUnit, ensureNonNull, ensureNonNull, ensureTimeUnit, equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, nameMatches, nameMatches, nameMatches
-
Methods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
-
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
The default WGS 1984 datum.
-
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 Geotools 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.- Since:
- 2.2
-
DefaultGeodeticDatum
public DefaultGeodeticDatum(String name, Ellipsoid ellipsoid, PrimeMeridian primeMeridian)
Constructs a geodetic datum from a name.- Parameters:
name
- The datum name.ellipsoid
- The ellipsoid.primeMeridian
- The prime meridian.
-
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 construtor:Property name Value type Value given to "bursaWolf"
BursaWolfParameters
or an array of thosegetBursaWolfParameters()
- Parameters:
properties
- Set of properties. Should contains at least"name"
.ellipsoid
- The ellipsoid.primeMeridian
- The prime meridian.
-
-
Method Detail
-
getEllipsoid
public Ellipsoid getEllipsoid()
Returns the ellipsoid.- Specified by:
getEllipsoid
in interfaceGeodeticDatum
- Returns:
- The ellipsoid.
-
getPrimeMeridian
public PrimeMeridian getPrimeMeridian()
Returns the prime meridian.- Specified by:
getPrimeMeridian
in interfaceGeodeticDatum
- Returns:
- The prime meridian.
-
getBursaWolfParameters
public BursaWolfParameters[] getBursaWolfParameters()
Returns all Bursa Wolf parameters specified in theproperties
map at construction time.- Since:
- 2.4
-
getBursaWolfParameters
public BursaWolfParameters getBursaWolfParameters(GeodeticDatum target)
Returns Bursa Wolf parameters for a datum shift toward the specified target, ornull
if none. This method search only for Bursa-Wolf parameters explicitly specified in theproperties
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 thetarget
datum if none were found in this datum. If such an elaborated search is wanted, usegetAffineTransform(org.geotools.api.referencing.datum.GeodeticDatum, org.geotools.api.referencing.datum.GeodeticDatum)
instead.
-
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 returnsnull
.- Parameters:
source
- The source datum.target
- The target datum.- Returns:
- An affine transform from
source
totarget
, ornull
if none. - See Also:
BursaWolfParameters.getAffineTransform()
-
isWGS84
public static boolean isWGS84(Datum datum)
Returnstrue
if the specified object is equals (at least on computation purpose) to theWGS84
datum. This method may conservatively returnsfalse
if the specified datum is uncertain (for example because it come from an other implementation).
-
equals
public boolean equals(AbstractIdentifiedObject object, boolean compareMetadata)
Compare this datum with the specified object for equality.- Overrides:
equals
in classAbstractDatum
- Parameters:
object
- The object to compare tothis
.compareMetadata
-true
for performing a strict comparaison, orfalse
for comparing only properties relevant to transformations.- Returns:
true
if both objects are equal.
-
hashCode
public int hashCode()
Returns a hash value for this geodetic datum. Name, remarks and the like are not taken in account. In other words, two geodetic datums will return the same hash value if they are equal in the sense ofequals
(AbstractIdentifiedObject, false)- Overrides:
hashCode
in classAbstractIdentifiedObject
- Returns:
- The hash code value. This value doesn't need to be the same in past or future versions of this class.
-
formatWKT
protected String formatWKT(Formatter formatter)
Format the inner part of a Well Known Text (WKT) element.- Overrides:
formatWKT
in classAbstractDatum
- Parameters:
formatter
- The formatter to use.- Returns:
- The WKT element name, which is "DATUM"
- See Also:
Formattable.toWKT()
,Formattable.toString()
-
formatPROJ
public String formatPROJ(PROJFormatter formatter)
Description copied from interface:PROJFormattable
Format the inner part of a PROJFormattable object.This method is automatically invoked by
PROJFormatter.append(PROJFormattable)
.For example for a element (
DefaultOperationMethod
) of type Projection, the formatter will invoke this method to prepend the "+proj=" String for completing the PROJ String before appending the Projection Name (e.g. lcc for a Lambert Conformal Conic)- Specified by:
formatPROJ
in interfacePROJFormattable
- Parameters:
formatter
- The PROJFormatter to use.- Returns:
- The proj String of the PROJ element type if any. (e.g. +ellps= for named ellipsoids, +datum= for named datums).
-
-