# Package org.apache.sis.metadata.iso.extent

Information about spatial, vertical, and temporal extent. An explanation for this package is provided in the OpenGIS® javadoc. The remaining discussion on this page is specific to the SIS implementation.
Overview
For a global overview of metadata in SIS, see the `org​.apache​.sis​.metadata` package javadoc.

Package overview
Class hierarchy | Aggregation hierarchy
--- | ---
ISO 19115 metadata `├─` Extent `├─` Geographic extent «abstract» `│ ├─` Geographic bounding box `│ ├─` Geographic description `│ └─` Bounding polygon `├─` Vertical extent `└─` Temporal extent `└─` Spatial temporal extent | Extent `├─` Geographic extent «abstract» `├─` Vertical extent `└─` Temporal extent Spatial temporal extent `└─` Geographic extent «abstract» Geographic bounding box Geographic description Bounding polygon

In addition to the standard properties, SIS provides the following methods:

- `Extents`
  - `getGeographicBoundingBox(Extent)` for extracting a global geographic bounding box.
  - `intersection(GeographicBoundingBox, GeographicBoundingBox)` for computing the intersection of two geographic bounding boxes.
  - `area(GeographicBoundingBox)` for estimating the area of a geographic bounding box.
- `DefaultGeographicBoundingBox`
  - `setBounds(double, double, double, double)` for setting the extent from (λ,φ) values.
  - `setBounds(Envelope)` for setting the extent from the given envelope.
  - `setBounds(GeographicBoundingBox)` for setting the extent from an other bounding box.
  - `add(GeographicBoundingBox)` for expanding this extent to include an other bounding box.
  - `intersect(GeographicBoundingBox)` for the intersection between the two bounding boxes.
- `DefaultVerticalExtent`
  - `setBounds(Envelope)` for setting the vertical element from the given envelope.
- `DefaultTemporalExtent`
  - `setBounds(Date, Date)` for setting the temporal element from the start time and end time.
  - `setBounds(Envelope)` for setting the temporal element from the given envelope.
- `DefaultExtent`
  - `addElements(Extent)` for adding extent elements inferred from the given envelope.

Null values, nil objects and collections
All constructors and setter methods accept `null` arguments. A null argument value means that the metadata element can not be provided, and the reason for that is unspecified. Alternatively, users can specify why a metadata element is missing by providing a value created by `NilReason​.createNilObject(Class)`.

Unless otherwise noted in the Javadoc, all getter methods may return an empty collection, an empty array or `null` if the type is neither a collection or an array. Note that non-null values may be `NilObject`s.

Unless the metadata object has been marked as unmodifiable and unless otherwise noted in the Javadoc, all collections returned by getter methods are live: adding new elements in the collection modify directly the underlying metadata object.

Since:
  0.3

Defined in the `sis-metadata` module

- Class Summary
  Class | Description
  --- | ---
  AbstractGeographicExtent | Base class for geographic area of the dataset.
  DefaultBoundingPolygon | Boundary enclosing the dataset, expressed as the closed set of (x,y) coordinates of the polygon.
  DefaultExtent | Information about spatial, vertical, and temporal extent.
  DefaultGeographicBoundingBox | Geographic position of the dataset.
  DefaultGeographicDescription | Description of the geographic area using identifiers.
  DefaultSpatialTemporalExtent | Extent with respect to date/time and spatial boundaries.
  DefaultTemporalExtent | Time period covered by the content of the dataset.
  DefaultVerticalExtent | Vertical domain of dataset.
  Extents | Convenience static methods for extracting information from `Extent` objects.