# Interface XReferencing

All Superinterfaces:
  `XInterface`

All Known Implementing Classes:
  `ReferencingFunctions`

public interface XReferencing extends XInterface
Services from the `org​.apache​.sis​.referencing` package to be exported to Apache OpenOffice or LibreOffice.

This interface is derived from the `XReferencing​.idl` file by first compiling with the `javamaker` tool provided in OpenOffice SDK, then disassembling the output using the `javap` tool provided in Java SDK. This source file exists only for convenience: for avoiding that IDEs report errors, and opportunistically for Javadoc purpose. But the `XReferencing​.class` file compiled from this source file must be overwritten by the `XReferencing​.class` file generated by `javamaker`. See `endorsed/src/org​.apache​.sis​.openoffice/bundle/build-instruction​.html` for more information.

Since:
  0.8

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String[][]`
  `formatAngle(double[][] value, Object pattern, Object locale)`
  Converts an angle to text according to a given format.
  `double`
  `getAccuracy(String sourceCRS, String targetCRS, Object areaOfInterest)`
  Returns the accuracy of a transformation between two coordinate reference systems.
  `String`
  `getAxis(String codeOrPath, int dimension)`
  Returns the axis name and units for the specified dimension in a coordinate reference system or coordinate system.
  `String`
  `getDomainOfValidity(String codeOrPath)`
  Returns the domain of validity as country or region names for an identified object.
  `double[][]`
  `getGeographicArea(String codeOrPath)`
  Returns the domain of validity as a geographic bounding box for an identified object.
  `String`
  `getName(String codeOrPath)`
  Returns the identified object name from an authority code.
  `String`
  `getScope(String codeOrPath)`
  Returns the scope of an identified object.
  `double[][]`
  `parseAngle(String[][] text, Object pattern, Object locale)`
  Converts text in degrees-minutes-seconds to an angle in decimal degrees.
  `double[][]`
  `transformEnvelope(String sourceCRS, String targetCRS, double[][] envelope)`
  Transforms an envelope from the specified source CRS to the specified target CRS.
  `double[][]`
  `transformPoints(String sourceCRS, String targetCRS, double[][] points)`
  Transforms coordinates from the specified source CRS to the specified target CRS.

- ## Method Details

  - ### getName

    String getName(String codeOrPath)
    Returns the identified object name from an authority code.
    Parameters:
      `codeOrPath` - the code allocated by an authority, or the path to a file.
    Returns:
      the object name.

  - ### getScope

    String getScope(String codeOrPath)
    Returns the scope of an identified object.
    Parameters:
      `codeOrPath` - the code allocated by an authority, or the path to a file.
    Returns:
      the object scope.

  - ### getDomainOfValidity

    String getDomainOfValidity(String codeOrPath)
    Returns the domain of validity as country or region names for an identified object.
    Parameters:
      `codeOrPath` - the code allocated by an authority, or the path to a file.
    Returns:
      the domain of validity.

  - ### getGeographicArea

    double[][] getGeographicArea(String codeOrPath)
    Returns the domain of validity as a geographic bounding box for an identified object. This method returns a 2×2 matrix: the first row contains the latitude and longitude of upper left corner, and the second row contains the latitude and longitude of bottom right corner. Units are degrees.
    Parameters:
      `codeOrPath` - the code allocated by an authority, or the path to a file.
    Returns:
      the object bounding box.

  - ### getAccuracy

    double getAccuracy(String sourceCRS, String targetCRS, Object areaOfInterest) throws IllegalArgumentException
    Returns the accuracy of a transformation between two coordinate reference systems.
    Parameters:
      `sourceCRS` - the authority code for the source coordinate reference system.
      `targetCRS` - the authority code for the target coordinate reference system.
      `areaOfInterest` - an optional bounding box of source coordinates to transform.
    Returns:
      the operation accuracy.
    Throws:
      `IllegalArgumentException` - if `points` is not a `double[][]` value or void.

  - ### getAxis

    String getAxis(String codeOrPath, int dimension)
    Returns the axis name and units for the specified dimension in a coordinate reference system or coordinate system. This method returns a short axis name as used in Well Known Text (WKT) format, for example Latitude instead of Geodetic latitude.
    Parameters:
      `codeOrPath` - the code allocated by an authority, or the path to a file.
      `dimension` - the dimension (1, 2, …).
    Returns:
      the name of the requested axis.

  - ### transformPoints

    double[][] transformPoints(String sourceCRS, String targetCRS, double[][] points)
    Transforms coordinates from the specified source CRS to the specified target CRS.
    Parameters:
      `sourceCRS` - the authority code for the source coordinate reference system.
      `targetCRS` - the authority code for the target coordinate reference system.
      `points` - the coordinates to transform.
    Returns:
      the transformed coordinates.

  - ### transformEnvelope

    double[][] transformEnvelope(String sourceCRS, String targetCRS, double[][] envelope)
    Transforms an envelope from the specified source CRS to the specified target CRS.
    Parameters:
      `sourceCRS` - the authority code for the source coordinate reference system.
      `targetCRS` - the authority code for the target coordinate reference system.
      `envelope` - points inside the envelope to transform.
    Returns:
      the transformed envelope.

  - ### parseAngle

    double[][] parseAngle(String[][] text, Object pattern, Object locale) throws IllegalArgumentException
    Converts text in degrees-minutes-seconds to an angle in decimal degrees. See `AngleFormat` for pattern description.
    Parameters:
      `text` - the text to be converted to an angle.
      `pattern` - an optional text that describes the format (example: "D°MM.m'").
      `locale` - the convention to use (e.g. decimal separator symbol).
    Returns:
      the angle parsed as a number.
    Throws:
      `IllegalArgumentException` - if `pattern` is not a string value or void.

  - ### formatAngle

    String[][] formatAngle(double[][] value, Object pattern, Object locale) throws IllegalArgumentException
    Converts an angle to text according to a given format. This method uses the pattern described by `AngleFormat` with the following extension:
    - If the pattern ends with E or W, then the angle is formatted as a longitude.
    - If the pattern ends with N or S, then the angle is formatted as a latitude.
    Parameters:
      `value` - the angle value (in decimal degrees) to be converted.
      `pattern` - an optional text that describes the format (example: "D°MM.m'").
      `locale` - the convention to use (e.g. decimal separator symbol).
    Returns:
      the angle formatted as a string.
    Throws:
      `IllegalArgumentException` - if `pattern` is not a string value or void.