Package org.geotools.referencing.factory
Class DatumAliases
Object
AbstractFactory
ReferencingFactory
DatumAliases
- All Implemented Interfaces:
DatumFactory
,Factory
,ObjectFactory
,Factory
,RegistrableFactory
A datum factory that add aliases to a datum name before to delegates the
datum creation to an other factory.
Aliases are especially important for datum since their name
are often the only way to differentiate them. Two datum with different names are considered incompatible, unless some
datum shift method are specified (e.g. Bursa-Wolf
parameters). Unfortunatly, different softwares often use different names for the same datum, which result in
OperationNotFoundException
when attempting to convert coordinates from
one coordinate reference system to an other one. For example "Nouvelle
Triangulation Française (Paris)" and "NTF (Paris meridian)" are actually the same datum. This
DatumAliases
class provides a way to handle that.
DatumAliases
is a class that determines if a datum name is in our list of aliases and constructs a value
for the aliases property (as generic names) for a
name. The default implementation is backed by the text file "DatumAliasesTable.txt
". The first line in this
text file must be the authority names. All other lines are the aliases.
Since DatumAliases
is a datum factory, any authority factory or any
WKT parser using this factory will takes advantage of the aliases
table.
- Since:
- 2.1
- Author:
- Rueben Schulz, Martin Desruisseaux
- See Also:
-
Field Summary
Fields inherited from class ReferencingFactory
LOGGER
Fields inherited from class AbstractFactory
hints, MAXIMUM_PRIORITY, MINIMUM_PRIORITY, NORMAL_PRIORITY, priority
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new datum factory with the default backing factory and alias table.DatumAliases
(DatumFactory factory) Constructs a new datum factory using the specified factory and the default alias table.DatumAliases
(DatumFactory factory, URL aliasURL) Constructs a new datum factory which delegates its work to the specified factory. -
Method Summary
Modifier and TypeMethodDescriptioncreateEllipsoid
(Map<String, ?> properties, double semiMajorAxis, double semiMinorAxis, Unit<Length> unit) Creates an ellipsoid from radius values.createEngineeringDatum
(Map<String, ?> properties) Creates an engineering datum.createFlattenedSphere
(Map<String, ?> properties, double semiMajorAxis, double inverseFlattening, Unit<Length> unit) Creates an ellipsoid from an major radius, and inverse flattening.createGeodeticDatum
(Map<String, ?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian) Creates geodetic datum from ellipsoid and (optionaly) Bursa-Wolf parameters.createImageDatum
(Map<String, ?> properties, PixelInCell pixelInCell) Creates an image datum.createPrimeMeridian
(Map<String, ?> properties, double longitude, Unit<Angle> angularUnit) Creates a prime meridian, relative to Greenwich.createTemporalDatum
(Map<String, ?> properties, Date origin) Creates a temporal datum from an enumerated type value.createVerticalDatum
(Map<String, ?> properties, VerticalDatumType type) Creates a vertical datum from an enumerated type value.void
Free all aliases that have been unused up to date.Methods inherited from class ReferencingFactory
ensureNonNull, getVendor
Methods inherited from class AbstractFactory
addImplementationHints, equals, getImplementationHints, getPriority, hashCode, onDeregistration, onRegistration, toString
-
Constructor Details
-
DatumAliases
public DatumAliases()Constructs a new datum factory with the default backing factory and alias table. -
DatumAliases
Constructs a new datum factory using the specified factory and the default alias table.- Parameters:
factory
- The factory to use for datum creation.
-
DatumAliases
Constructs a new datum factory which delegates its work to the specified factory. The aliases table is read from the specified URL. The fist line in this file most be the authority names. All other names are aliases.- Parameters:
factory
- The factory to use for datum creation.aliasURL
- The url to the alias table.
-
-
Method Details
-
createEngineeringDatum
Creates an engineering datum.- Specified by:
createEngineeringDatum
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.- Returns:
- The datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createGeodeticDatum
public GeodeticDatum createGeodeticDatum(Map<String, ?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian) throws FactoryExceptionCreates geodetic datum from ellipsoid and (optionaly) Bursa-Wolf parameters.- Specified by:
createGeodeticDatum
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.ellipsoid
- Ellipsoid to use in new geodetic datum.primeMeridian
- Prime meridian to use in new geodetic datum.- Returns:
- The datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createImageDatum
public ImageDatum createImageDatum(Map<String, ?> properties, PixelInCell pixelInCell) throws FactoryExceptionCreates an image datum.- Specified by:
createImageDatum
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.pixelInCell
- Specification of the way the image grid is associated with the image data attributes.- Returns:
- The datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createTemporalDatum
public TemporalDatum createTemporalDatum(Map<String, ?> properties, Date origin) throws FactoryExceptionCreates a temporal datum from an enumerated type value.- Specified by:
createTemporalDatum
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.origin
- The date and time origin of this temporal datum.- Returns:
- The datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createVerticalDatum
public VerticalDatum createVerticalDatum(Map<String, ?> properties, VerticalDatumType type) throws FactoryExceptionCreates a vertical datum from an enumerated type value.- Specified by:
createVerticalDatum
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.type
- The type of this vertical datum (often geoidal).- Returns:
- The datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createEllipsoid
public Ellipsoid createEllipsoid(Map<String, ?> properties, double semiMajorAxis, double semiMinorAxis, Unit<Length> unit) throws FactoryExceptionCreates an ellipsoid from radius values.- Specified by:
createEllipsoid
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.semiMajorAxis
- Equatorial radius in supplied linear units.semiMinorAxis
- Polar radius in supplied linear units.unit
- Linear units of ellipsoid axes.- Returns:
- The ellipsoid for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createFlattenedSphere
public Ellipsoid createFlattenedSphere(Map<String, ?> properties, double semiMajorAxis, double inverseFlattening, Unit<Length> unit) throws FactoryExceptionCreates an ellipsoid from an major radius, and inverse flattening.- Specified by:
createFlattenedSphere
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.semiMajorAxis
- Equatorial radius in supplied linear units.inverseFlattening
- Eccentricity of ellipsoid.unit
- Linear units of major axis.- Returns:
- The ellipsoid for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createPrimeMeridian
public PrimeMeridian createPrimeMeridian(Map<String, ?> properties, double longitude, Unit<Angle> angularUnit) throws FactoryExceptionCreates a prime meridian, relative to Greenwich.- Specified by:
createPrimeMeridian
in interfaceDatumFactory
- Parameters:
properties
- Name and other properties to give to the new object.longitude
- Longitude of prime meridian in supplied angular units East of Greenwich.angularUnit
- Angular units of longitude.- Returns:
- The prime meridian for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
freeUnused
public void freeUnused()Free all aliases that have been unused up to date. If one of those alias is needed at a later time, the aliases table will be reloaded.
-