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

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 another bounding box.
  - `add(GeographicBoundingBox)` for expanding this extent to include another 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 cannot 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

- Related Packages
  Package
  Description
  org.apache.sis.metadata.iso
  Root package for ISO 19115 metadata about resources (data or services).
- 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` or `Metadata` objects.
  NotSpatioTemporalException
  Thrown when an envelope cannot be transformed to a geographic, vertical or temporal extent.