- All Superinterfaces:
Factory
,ObjectFactory
@UML(identifier="CS_CoordinateSystemFactory",
specification=OGC_01009)
public interface DatumFactory
extends ObjectFactory
Builds up complex datum objects from simpler objects or values.
DatumFactory
allows applications to make datums
that cannot be created by a DatumAuthorityFactory
.
This factory is very flexible, whereas the authority factory is easier to use.
So DatumAuthorityFactory
can be used to make "standard" datums,
and DatumFactory
can be used to make "special" datums.
Default methods
Allcreate(…)
methods in this interface are optional.
If a method is not overridden by the implementer,
the default is to throw an UnimplementedServiceException
with a message saying that the type or service is not supported.- Since:
- 1.0
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondefault <D extends Datum>
DatumEnsemble<D> createDatumEnsemble
(Map<String, ?> properties, Collection<D> members, PositionalAccuracy accuracy) Creates a datum ensemble from a collection of members.default Ellipsoid
createEllipsoid
(Map<String, ?> properties, double semiMajorAxis, double semiMinorAxis, javax.measure.Unit<javax.measure.quantity.Length> unit) Creates an ellipsoid from radius values.default EngineeringDatum
createEngineeringDatum
(Map<String, ?> properties) Creates an engineering datum.default Ellipsoid
createFlattenedSphere
(Map<String, ?> properties, double semiMajorAxis, double inverseFlattening, javax.measure.Unit<javax.measure.quantity.Length> unit) Creates an ellipsoid from an major radius, and inverse flattening.default GeodeticDatum
createGeodeticDatum
(Map<String, ?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian) Creates geodetic reference frame from ellipsoid and prime meridian.default ImageDatum
createImageDatum
(Map<String, ?> properties, PixelInCell pixelInCell) Deprecated.default ParametricDatum
createParametricDatum
(Map<String, ?> properties) Creates a parametric datum.default PrimeMeridian
createPrimeMeridian
(Map<String, ?> properties, double longitude, javax.measure.Unit<javax.measure.quantity.Angle> unit) Creates a prime meridian, relative to Greenwich.default TemporalDatum
createTemporalDatum
(Map<String, ?> properties, Temporal origin) Creates a temporal datum from a temporal origin.default TemporalDatum
createTemporalDatum
(Map<String, ?> properties, Date origin) default VerticalDatum
createVerticalDatum
(Map<String, ?> properties, RealizationMethod method) Creates a vertical datum from an enumerated type value.default VerticalDatum
createVerticalDatum
(Map<String, ?> properties, VerticalDatumType type) Deprecated.Replaced bycreateVerticalDatum(Map, RealizationMethod)
.
-
Method Details
-
createEllipsoid
@UML(identifier="createEllipsoid", specification=OGC_01009) default Ellipsoid createEllipsoid(Map<String, ?> properties, double semiMajorAxis, double semiMinorAxis, javax.measure.Unit<javax.measure.quantity.Length> unit) throws FactoryExceptionCreates an ellipsoid from radius values. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.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
@UML(identifier="createFlattenedSphere", specification=OGC_01009) default Ellipsoid createFlattenedSphere(Map<String, ?> properties, double semiMajorAxis, double inverseFlattening, javax.measure.Unit<javax.measure.quantity.Length> unit) throws FactoryExceptionCreates an ellipsoid from an major radius, and inverse flattening. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.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
@UML(identifier="createPrimeMeridian", specification=OGC_01009) default PrimeMeridian createPrimeMeridian(Map<String, ?> properties, double longitude, javax.measure.Unit<javax.measure.quantity.Angle> unit) throws FactoryExceptionCreates a prime meridian, relative to Greenwich. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.longitude
- longitude of prime meridian in supplied angular units East of Greenwich.unit
- angular units of longitude.- Returns:
- the prime meridian for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createGeodeticDatum
@UML(identifier="createHorizontalDatum", specification=OGC_01009) default GeodeticDatum createGeodeticDatum(Map<String, ?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian) throws FactoryExceptionCreates geodetic reference frame from ellipsoid and prime meridian. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.ellipsoid
- ellipsoid to use in new geodetic reference frame.primeMeridian
- prime meridian to use in new geodetic reference frame.- Returns:
- the datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createVerticalDatum
@Deprecated(since="3.1") @UML(identifier="createVerticalDatum", specification=OGC_01009) default VerticalDatum createVerticalDatum(Map<String, ?> properties, VerticalDatumType type) throws FactoryExceptionDeprecated.Replaced bycreateVerticalDatum(Map, RealizationMethod)
.Creates a vertical datum from an enumerated type value. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.type
- the type of this vertical datum (often "geoidal").- Returns:
- the datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createVerticalDatum
default VerticalDatum createVerticalDatum(Map<String, ?> properties, RealizationMethod method) throws FactoryExceptionCreates a vertical datum from an enumerated type value. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.method
- the realization method of this vertical datum, ornull
if unspecified.- Returns:
- the datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.- Since:
- 3.1
-
createTemporalDatum
@Deprecated(since="3.1") default TemporalDatum createTemporalDatum(Map<String, ?> properties, Date origin) throws FactoryExceptionCreates a temporal datum from a temporal origin.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.origin
- the date and time origin of this temporal datum. TheInstant
sub-type is recommended.- Returns:
- the datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createTemporalDatum
default TemporalDatum createTemporalDatum(Map<String, ?> properties, Temporal origin) throws FactoryExceptionCreates a temporal datum from a temporal origin. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.origin
- the date and time origin of this temporal datum. TheInstant
sub-type is recommended.- Returns:
- the datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.- Since:
- 3.1
-
createParametricDatum
Creates a parametric datum. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.- Returns:
- the datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.- Since:
- 3.1
-
createEngineeringDatum
@UML(identifier="createLocalDatum", specification=OGC_01009) default EngineeringDatum createEngineeringDatum(Map<String, ?> properties) throws FactoryExceptionCreates an engineering datum. Theproperties
map shall contain at least an entry for the "name" key.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.- Returns:
- the datum for the given properties.
- Throws:
FactoryException
- if the object creation failed.
-
createImageDatum
@Deprecated(since="3.1") default ImageDatum createImageDatum(Map<String, ?> properties, PixelInCell pixelInCell) throws FactoryExceptionDeprecated.ImageDatum
is replaced byEngineeringDatum
as of ISO 19111:2019.Creates an image datum.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.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.
-
createDatumEnsemble
default <D extends Datum> DatumEnsemble<D> createDatumEnsemble(Map<String, ?> properties, Collection<D> members, PositionalAccuracy accuracy) throws FactoryExceptionCreates a datum ensemble from a collection of members. Theproperties
map shall contain at least an entry for the "name" key.- Type Parameters:
D
- the type of datum contained in the ensemble.- Parameters:
properties
- name and other properties to give to the new object. Available properties are listed there.members
- datum or reference frames which are members of the datum ensemble.accuracy
- inaccuracy introduced through use of the given collection of datums.- Returns:
- the datum ensemble for the given properties.
- Throws:
FactoryException
- if the object creation failed.- Since:
- 3.1
-
ImageDatum
is replaced byEngineeringDatum
as of ISO 19111:2019.