Package org.geotools.referencing.crs
Class DefaultGeographicCRS
- Object
-
- Formattable
-
- AbstractIdentifiedObject
-
- AbstractReferenceSystem
-
- AbstractCRS
-
- AbstractSingleCRS
-
- DefaultGeographicCRS
-
- All Implemented Interfaces:
Serializable
,CoordinateReferenceSystem
,GeodeticCRS
,GeographicCRS
,SingleCRS
,IdentifiedObject
,ReferenceSystem
,PROJFormattable
public class DefaultGeographicCRS extends AbstractSingleCRS implements GeographicCRS, PROJFormattable
A coordinate reference system based on an ellipsoidal approximation of the geoid; this provides an accurate representation of the geometry of geographic features for a large portion of the earth's surface.Used with CS type(s) Ellipsoidal
- Since:
- 2.1
- Author:
- Martin Desruisseaux (IRD)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static DefaultGeographicCRS
WGS84
A two-dimensional geographic coordinate reference system using WGS84 datum.static DefaultGeographicCRS
WGS84_3D
A three-dimensional geographic coordinate reference system using WGS84 datum.-
Fields inherited from class AbstractSingleCRS
datum
-
Fields inherited from class AbstractCRS
coordinateSystem
-
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 IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
-
Fields inherited from interface ReferenceSystem
DOMAIN_OF_VALIDITY_KEY, SCOPE_KEY
-
-
Constructor Summary
Constructors Constructor Description DefaultGeographicCRS(String name, GeodeticDatum datum, EllipsoidalCS cs)
Constructs a geographic CRS from a name.DefaultGeographicCRS(Map<String,?> properties, GeodeticDatum datum, EllipsoidalCS cs)
Constructs a geographic CRS from a set of properties.DefaultGeographicCRS(GeographicCRS crs)
Constructs a new geographic CRS with the same values than the specified one.DefaultGeographicCRS(GeodeticDatum datum, EllipsoidalCS cs)
Constructs a geographic CRS with the same properties than the given datum.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
calculateHashCode()
Returns a hash value for this geographic CRS.Measure
distance(double[] coord1, double[] coord2)
Computes the orthodromic distance between two points.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.EllipsoidalCS
getCoordinateSystem()
Returns the coordinate system.GeodeticDatum
getDatum()
Returns the datum.-
Methods inherited from class AbstractSingleCRS
equals, getAxis, getDimension
-
Methods inherited from class AbstractCRS
hashCode
-
Methods inherited from class AbstractReferenceSystem
getDomainOfValidity, 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 IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
-
Methods inherited from interface ReferenceSystem
getDomainOfValidity, getScope
-
-
-
-
Field Detail
-
WGS84
public static final DefaultGeographicCRS WGS84
A two-dimensional geographic coordinate reference system using WGS84 datum. This CRS uses (longitude,latitude) ordinates with longitude values increasing East and latitude values increasing North. Angular units are decimal degrees and prime meridian is Greenwich.
-
WGS84_3D
public static final DefaultGeographicCRS WGS84_3D
A three-dimensional geographic coordinate reference system using WGS84 datum. This CRS uses (longitude,latitude,height) ordinates with longitude values increasing East, latitude values increasing North and height above the ellipsoid in metres. Angular units are decimal degrees and prime meridian is Greenwich.
-
-
Constructor Detail
-
DefaultGeographicCRS
public DefaultGeographicCRS(GeographicCRS crs)
Constructs a new geographic CRS 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.- Parameters:
crs
- The coordinate reference system to copy.- Since:
- 2.2
-
DefaultGeographicCRS
public DefaultGeographicCRS(GeodeticDatum datum, EllipsoidalCS cs)
Constructs a geographic CRS with the same properties than the given datum. The inherited properties include the name and aliases.- Parameters:
datum
- The datum.cs
- The coordinate system.- Since:
- 2.5
-
DefaultGeographicCRS
public DefaultGeographicCRS(String name, GeodeticDatum datum, EllipsoidalCS cs)
Constructs a geographic CRS from a name.- Parameters:
name
- The name.datum
- The datum.cs
- The coordinate system.
-
DefaultGeographicCRS
public DefaultGeographicCRS(Map<String,?> properties, GeodeticDatum datum, EllipsoidalCS cs)
Constructs a geographic CRS from a set of properties. The properties are given unchanged to the super-class constructor.- Parameters:
properties
- Set of properties. Should contains at least"name"
.datum
- The datum.cs
- The coordinate system.
-
-
Method Detail
-
getCoordinateSystem
public EllipsoidalCS getCoordinateSystem()
Returns the coordinate system.- Specified by:
getCoordinateSystem
in interfaceCoordinateReferenceSystem
- Specified by:
getCoordinateSystem
in interfaceGeographicCRS
- Specified by:
getCoordinateSystem
in interfaceSingleCRS
- Overrides:
getCoordinateSystem
in classAbstractCRS
- Returns:
- The coordinate system.
-
getDatum
public GeodeticDatum getDatum()
Returns the datum.- Specified by:
getDatum
in interfaceGeodeticCRS
- Specified by:
getDatum
in interfaceSingleCRS
- Overrides:
getDatum
in classAbstractSingleCRS
- Returns:
- The datum.
-
distance
public Measure distance(double[] coord1, double[] coord2) throws UnsupportedOperationException, MismatchedDimensionException
Computes the orthodromic distance between two points. This convenience method delegates the work to the underlyling ellipsoid, if possible.- Overrides:
distance
in classAbstractCRS
- Parameters:
coord1
- Coordinates of the first point.coord2
- Coordinates of the second point.- Returns:
- The distance between
coord1
andcoord2
. - Throws:
UnsupportedOperationException
- if this coordinate reference system can't compute distances.MismatchedDimensionException
- if a coordinate doesn't have the expected dimension.
-
calculateHashCode
public int calculateHashCode()
Returns a hash value for this geographic CRS.- Overrides:
calculateHashCode
in classAbstractSingleCRS
- 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 classAbstractCRS
- Parameters:
formatter
- The formatter to use.- Returns:
- The name of the WKT element type, which is
"GEOGCS"
. - 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).
-
-