## org.opengis.referencing.datum
Interface DatumFactory

All Superinterfaces:
  Factory, ObjectFactory

    @UML(identifier="CS_CoordinateSystemFactory",
         specification=OGC_01009)
    public interface DatumFactory

extends ObjectFactory

Builds up complex datums 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.

Since:
  GeoAPI 1.0
Version:
  Implementation specification 1.0
See Also:
  `CSFactory`, `CRSFactory`

Method Summary
`Ellipsoid` `createEllipsoid(Map<String,?> properties, double semiMajorAxis, double semiMinorAxis, Unit unit)` Creates an ellipsoid from radius values.
`EngineeringDatum` `createEngineeringDatum(Map<String,?> properties)` Creates an engineering datum.
`Ellipsoid` `createFlattenedSphere(Map<String,?> properties, double semiMajorAxis, double inverseFlattening, Unit unit)` Creates an ellipsoid from an major radius, and inverse flattening.
`GeodeticDatum` `createGeodeticDatum(Map<String,?> properties, Ellipsoid ellipsoid, PrimeMeridian primeMeridian)` Creates geodetic datum from ellipsoid and (optionaly) Bursa-Wolf parameters.
`ImageDatum` `createImageDatum(Map<String,?> properties, PixelInCell pixelInCell)` Creates an image datum.
`PrimeMeridian` `createPrimeMeridian(Map<String,?> properties, double longitude, Unit angularUnit)` Creates a prime meridian, relative to Greenwich.
`TemporalDatum` `createTemporalDatum(Map<String,?> properties, Date origin)` Creates a temporal datum from an enumerated type value.
`VerticalDatum` `createVerticalDatum(Map<String,?> properties, VerticalDatumType type)` Creates a vertical datum from an enumerated type value.

Methods inherited from interface Factory
`getVendor`

Method Detail

### createEngineeringDatum

    @UML(identifier="createLocalDatum",
         specification=OGC_01009)
    EngineeringDatum createEngineeringDatum(Map<String,?> properties)
                                            throws FactoryException

  Creates an engineering datum.

  Parameters:
    `properties` - Name and other properties to give to the new object. Available properties are listed there.
  Throws:
    `FactoryException` - if the object creation failed.

### createGeodeticDatum

    @UML(identifier="createHorizontalDatum",
         specification=OGC_01009)
    GeodeticDatum createGeodeticDatum(Map<String,?> properties,
                                                                          Ellipsoid ellipsoid,
                                                                          PrimeMeridian primeMeridian)
                                      throws FactoryException

  Creates geodetic datum from ellipsoid and (optionaly) Bursa-Wolf parameters.

  Parameters:
    `properties` - Name and other properties to give to the new object. Available properties are listed there.
    `ellipsoid` - Ellipsoid to use in new geodetic datum.
    `primeMeridian` - Prime meridian to use in new geodetic datum.
  Throws:
    `FactoryException` - if the object creation failed.

### createImageDatum

    ImageDatum createImageDatum(Map<String,?> properties,
                                PixelInCell pixelInCell)
                                throws FactoryException

  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.
  Throws:
    `FactoryException` - if the object creation failed.

### createTemporalDatum

    TemporalDatum createTemporalDatum(Map<String,?> properties,
                                      Date origin)
                                      throws FactoryException

  Creates a temporal datum from an enumerated type value.

  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.
  Throws:
    `FactoryException` - if the object creation failed.

### createVerticalDatum

    @UML(identifier="createVerticalDatum",
         specification=OGC_01009)
    VerticalDatum createVerticalDatum(Map<String,?> properties,
                                                                          VerticalDatumType type)
                                      throws FactoryException

  Creates a vertical datum from an enumerated type value.

  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").
  Throws:
    `FactoryException` - if the object creation failed.

### createEllipsoid

    @UML(identifier="createEllipsoid",
         specification=OGC_01009)
    Ellipsoid createEllipsoid(Map<String,?> properties,
                                                                  double semiMajorAxis,
                                                                  double semiMinorAxis,
                                                                  Unit unit)
                              throws FactoryException

  Creates an ellipsoid from radius values.

  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.
  Throws:
    `FactoryException` - if the object creation failed.

### createFlattenedSphere

    @UML(identifier="createFlattenedSphere",
         specification=OGC_01009)
    Ellipsoid createFlattenedSphere(Map<String,?> properties,
                                                                        double semiMajorAxis,
                                                                        double inverseFlattening,
                                                                        Unit unit)
                                    throws FactoryException

  Creates an ellipsoid from an major radius, and inverse flattening.

  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.
  Throws:
    `FactoryException` - if the object creation failed.

### createPrimeMeridian

    @UML(identifier="createPrimeMeridian",
         specification=OGC_01009)
    PrimeMeridian createPrimeMeridian(Map<String,?> properties,
                                                                          double longitude,
                                                                          Unit angularUnit)
                                      throws FactoryException

  Creates a prime meridian, relative to Greenwich.

  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.
    `angularUnit` - Angular units of longitude.
  Throws:
    `FactoryException` - if the object creation failed.

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.