# Interface CRSAuthorityFactory

All Superinterfaces:
  `AuthorityFactory, Factory`

All Known Implementing Classes:
  `CommonAuthorityFactory, EPSGDataAccess, EPSGFactory, MultiAuthoritiesFactory`

@UML(identifier="CS_CoordinateSystemAuthorityFactory", specification=OGC_01009) public interface CRSAuthorityFactory extends AuthorityFactory
Creates coordinate reference systems using authority codes. External authorities are used to manage definitions of objects used in this interface. The definitions of these objects are referenced using code strings. A commonly used authority is EPSG, which is also used in the GeoTIFF standard.

Since:
  1.0
See Also:
  - `CSAuthorityFactory`
  - `DatumAuthorityFactory`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CompoundCRS`
  `createCompoundCRS(String code)`
  Creates a 3D coordinate reference system from a code.
  `CoordinateReferenceSystem`
  `createCoordinateReferenceSystem(String code)`
  Returns an arbitrary coordinate reference system from a code.
  `DerivedCRS`
  `createDerivedCRS(String code)`
  Creates a derived coordinate reference system from a code.
  `EngineeringCRS`
  `createEngineeringCRS(String code)`
  Create a engineering coordinate reference system from a code.
  `GeocentricCRS`
  `createGeocentricCRS(String code)`
  Returns a geocentric coordinate reference system from a code.
  `GeographicCRS`
  `createGeographicCRS(String code)`
  Returns a geographic coordinate reference system from a code.
  `ImageCRS`
  `createImageCRS(String code)`
  Create a image coordinate reference system from a code.
  `ProjectedCRS`
  `createProjectedCRS(String code)`
  Returns a projected coordinate reference system from a code.
  `TemporalCRS`
  `createTemporalCRS(String code)`
  Create a temporal coordinate reference system from a code.
  `VerticalCRS`
  `createVerticalCRS(String code)`
  Create a vertical coordinate reference system from a code.

  ### Methods inherited from interface AuthorityFactory

  `createObject, getAuthority, getAuthorityCodes, getDescriptionText`

  ### Methods inherited from interface Factory

  `getVendor`

- ## Method Details

  - ### createCoordinateReferenceSystem

    @UML(identifier="createHorizontalCoordinateSystem", specification=OGC_01009) CoordinateReferenceSystem createCoordinateReferenceSystem(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns an arbitrary coordinate reference system from a code. If the coordinate reference system type is know at compile time, it is recommended to invoke the most precise method instead of this one (for example `createGeographicCRS(code)` instead of `createCoordinateReferenceSystem(code)` if the caller know he is asking for a geographic coordinate reference system).
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `createGeographicCRS(String)`
      - `createProjectedCRS(String)`
      - `createVerticalCRS(String)`
      - `createTemporalCRS(String)`
      - `createCompoundCRS(String)`

  - ### createCompoundCRS

    @UML(identifier="createCompoundCoordinateSystem", specification=OGC_01009) CompoundCRS createCompoundCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a 3D coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createDerivedCRS

    DerivedCRS createDerivedCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Creates a derived coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createEngineeringCRS

    EngineeringCRS createEngineeringCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Create a engineering coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createGeographicCRS

    @UML(identifier="createGeographicCoordinateSystem", specification=OGC_01009) GeographicCRS createGeographicCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns a geographic coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `DatumAuthorityFactory​.createGeodeticDatum(String)`

  - ### createGeocentricCRS

    GeocentricCRS createGeocentricCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns a geocentric coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed.
    See Also:
      - `DatumAuthorityFactory​.createGeodeticDatum(String)`

  - ### createImageCRS

    ImageCRS createImageCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Create a image coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.

  - ### createProjectedCRS

    @UML(identifier="createProjectedCoordinateSystem", specification=OGC_01009) ProjectedCRS createProjectedCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Returns a projected coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `DatumAuthorityFactory​.createGeodeticDatum(String)`

  - ### createTemporalCRS

    TemporalCRS createTemporalCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Create a temporal coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `DatumAuthorityFactory​.createTemporalDatum(String)`

  - ### createVerticalCRS

    @UML(identifier="createVerticalCoordinateSystem", specification=OGC_01009) VerticalCRS createVerticalCRS(String code) throws NoSuchAuthorityCodeException, FactoryException
    Create a vertical coordinate reference system from a code.
    Parameters:
      `code` - Value allocated by authority.
    Returns:
      The coordinate reference system for the given code.
    Throws:
      `NoSuchAuthorityCodeException` - if the specified `code` was not found.
      `FactoryException` - if the object creation failed for some other reason.
    See Also:
      - `DatumAuthorityFactory​.createVerticalDatum(String)`