org.geotools.metadata.iso.extent
Class GeographicBoundingBoxImpl

Object
  extended by AbstractMetadata
      extended by ModifiableMetadata
          extended by MetadataEntity
              extended by GeographicExtentImpl
                  extended by GeographicBoundingBoxImpl
All Implemented Interfaces:
Serializable, Cloneable, GeographicBoundingBox, GeographicExtent

public class GeographicBoundingBoxImpl
extends GeographicExtentImpl
implements GeographicBoundingBox

Geographic position of the dataset. This is only an approximate so specifying the coordinate reference system is unnecessary. The CRS shall be geographic with Greenwich prime meridian, but the datum doesn't need to be WGS84.

Since:
2.1
Author:
Martin Desruisseaux (IRD), Touraïvane
See Also:
Serialized Form
Module:

Field Summary
static GeographicBoundingBox WORLD
          A bounding box ranging from 180°W to 180°E and 90°S to 90°N.
 
Fields inherited from class AbstractMetadata
LOGGER
 
Constructor Summary
GeographicBoundingBoxImpl()
          Constructs an initially empty geographic bounding box.
GeographicBoundingBoxImpl(double westBoundLongitude, double eastBoundLongitude, double southBoundLatitude, double northBoundLatitude)
          Creates a geographic bounding box initialized to the specified values.
GeographicBoundingBoxImpl(Envelope envelope)
          Constructs a geographic bounding box from the specified envelope.
GeographicBoundingBoxImpl(GeographicBoundingBox box)
          Constructs a geographic bounding box initialized to the same values than the specified one.
GeographicBoundingBoxImpl(Rectangle2D bounds)
          Constructs a geographic bounding box from the specified rectangle.
 
Method Summary
 void add(GeographicBoundingBox box)
          Adds a geographic bounding box to this box.
 boolean equals(Object object)
          Compares this geographic bounding box with the specified object for equality.
 double getEastBoundLongitude()
          Returns the eastern-most coordinate of the limit of the dataset extent.
 double getNorthBoundLatitude()
          Returns the northern-most, coordinate of the limit of the dataset extent.
 double getSouthBoundLatitude()
          Returns the southern-most coordinate of the limit of the dataset extent.
 double getWestBoundLongitude()
          Returns the western-most coordinate of the limit of the dataset extent.
 int hashCode()
          Returns a hash code value for this extent.
 void intersect(GeographicBoundingBox box)
          Sets this bounding box to the intersection of this box with the specified one.
 boolean isEmpty()
          Returns true if this bounding box is empty.
 void setBounds(double westBoundLongitude, double eastBoundLongitude, double southBoundLatitude, double northBoundLatitude)
          Sets the bounding box to the specified values.
 void setBounds(GeographicBoundingBox box)
          Sets the bounding box to the same values than the specified box.
 void setEastBoundLongitude(double newValue)
          Set the eastern-most coordinate of the limit of the dataset extent.
 void setNorthBoundLatitude(double newValue)
          Set the northern-most, coordinate of the limit of the dataset extent.
 void setSouthBoundLatitude(double newValue)
          Set the southern-most coordinate of the limit of the dataset extent.
 void setWestBoundLongitude(double newValue)
          Set the western-most coordinate of the limit of the dataset extent.
 String toString()
          Returns a string representation of this extent using a default angle pattern.
static String toString(GeographicBoundingBox box, String pattern, Locale locale)
          Returns a string representation of the specified extent using the specified angle pattern and locale.
 
Methods inherited from class GeographicExtentImpl
getInclusion, setInclusion
 
Methods inherited from class MetadataEntity
ensureNonNull, getStandard
 
Methods inherited from class ModifiableMetadata
checkWritePermission, clone, copyCollection, copyList, freeze, isModifiable, nonNullCollection, nonNullList, nonNullSet, unmodifiable
 
Methods inherited from class AbstractMetadata
asMap, asTree, getInterface
 
Methods inherited from class Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface GeographicExtent
getInclusion
 

Field Detail

WORLD

public static final GeographicBoundingBox WORLD
A bounding box ranging from 180°W to 180°E and 90°S to 90°N.

Since:
2.2
Constructor Detail

GeographicBoundingBoxImpl

public GeographicBoundingBoxImpl()
Constructs an initially empty geographic bounding box.


GeographicBoundingBoxImpl

public GeographicBoundingBoxImpl(GeographicBoundingBox box)
Constructs a geographic bounding box initialized to the same values than the specified one.

Parameters:
box - The existing box to use for initializing this geographic bounding box.
Since:
2.2

GeographicBoundingBoxImpl

public GeographicBoundingBoxImpl(Envelope envelope)
                          throws TransformException
Constructs a geographic bounding box from the specified envelope. If the envelope contains a CRS, then the bounding box may be projected to a geographic one. Otherwise, the envelope is assumed already in appropriate CRS.

When coordinate transformation is required, the target geographic CRS is not necessarly WGS84. This method preserves the same ellipsoid than in the envelope CRS when possible. This is because geographic bounding box are only approximative and the ISO specification do not mandates a particular CRS, so we avoid transformations that are not strictly necessary.

Note: This constructor is available only if the referencing module is on the classpath.

Parameters:
envelope - The envelope to use for initializing this geographic bounding box.
Throws:
UnsupportedOperationException - if the referencing module is not on the classpath.
TransformException - if the envelope can't be transformed.
Since:
2.2

GeographicBoundingBoxImpl

public GeographicBoundingBoxImpl(Rectangle2D bounds)
Constructs a geographic bounding box from the specified rectangle. The rectangle is assumed in WGS 84 CRS.

Parameters:
bounds - The rectangle to use for initializing this geographic bounding box.

GeographicBoundingBoxImpl

public GeographicBoundingBoxImpl(double westBoundLongitude,
                                 double eastBoundLongitude,
                                 double southBoundLatitude,
                                 double northBoundLatitude)
Creates a geographic bounding box initialized to the specified values.

Caution: Arguments are expected in the same order than they appear in the ISO 19115 specification. This is different than the order commonly found in Java world, which is rather (xmin, ymin, xmax, ymax).

Parameters:
westBoundLongitude - The minimal x value.
eastBoundLongitude - The maximal x value.
southBoundLatitude - The minimal y value.
northBoundLatitude - The maximal y value.
Method Detail

getWestBoundLongitude

public double getWestBoundLongitude()
Returns the western-most coordinate of the limit of the dataset extent. The value is expressed in longitude in decimal degrees (positive east).

Specified by:
getWestBoundLongitude in interface GeographicBoundingBox
Returns:
The western-most longitude between -180 and +180°.

setWestBoundLongitude

public void setWestBoundLongitude(double newValue)
Set the western-most coordinate of the limit of the dataset extent. The value is expressed in longitude in decimal degrees (positive east).

Parameters:
newValue - The western-most longitude between -180 and +180°.

getEastBoundLongitude

public double getEastBoundLongitude()
Returns the eastern-most coordinate of the limit of the dataset extent. The value is expressed in longitude in decimal degrees (positive east).

Specified by:
getEastBoundLongitude in interface GeographicBoundingBox
Returns:
The eastern-most longitude between -180 and +180°.

setEastBoundLongitude

public void setEastBoundLongitude(double newValue)
Set the eastern-most coordinate of the limit of the dataset extent. The value is expressed in longitude in decimal degrees (positive east).

Parameters:
newValue - The eastern-most longitude between -180 and +180°.

getSouthBoundLatitude

public double getSouthBoundLatitude()
Returns the southern-most coordinate of the limit of the dataset extent. The value is expressed in latitude in decimal degrees (positive north).

Specified by:
getSouthBoundLatitude in interface GeographicBoundingBox
Returns:
The southern-most latitude between -90 and +90°.

setSouthBoundLatitude

public void setSouthBoundLatitude(double newValue)
Set the southern-most coordinate of the limit of the dataset extent. The value is expressed in latitude in decimal degrees (positive north).

Parameters:
newValue - The southern-most latitude between -90 and +90°.

getNorthBoundLatitude

public double getNorthBoundLatitude()
Returns the northern-most, coordinate of the limit of the dataset extent. The value is expressed in latitude in decimal degrees (positive north).

Specified by:
getNorthBoundLatitude in interface GeographicBoundingBox
Returns:
The northern-most latitude between -90 and +90°.

setNorthBoundLatitude

public void setNorthBoundLatitude(double newValue)
Set the northern-most, coordinate of the limit of the dataset extent. The value is expressed in latitude in decimal degrees (positive north).

Parameters:
newValue - The northern-most latitude between -90 and +90°.

setBounds

public void setBounds(double westBoundLongitude,
                      double eastBoundLongitude,
                      double southBoundLatitude,
                      double northBoundLatitude)
Sets the bounding box to the specified values.

Caution: Arguments are expected in the same order than they appear in the ISO 19115 specification. This is different than the order commonly found in Java world, which is rather (xmin, ymin, xmax, ymax).

Parameters:
westBoundLongitude - The minimal x value.
eastBoundLongitude - The maximal x value.
southBoundLatitude - The minimal y value.
northBoundLatitude - The maximal y value.
Since:
2.5

setBounds

public void setBounds(GeographicBoundingBox box)
Sets the bounding box to the same values than the specified box.

Parameters:
box - The geographic bounding box to use for setting the values of this box.
Since:
2.5

add

public void add(GeographicBoundingBox box)
Adds a geographic bounding box to this box. If the inclusion status is the same for this box and the box to be added, then the resulting bounding box is the union of the two boxes. If the inclusion status are opposite (exclusion), then this method attempt to exclude some area of specified box from this box. The resulting bounding box is smaller if the exclusion can be performed without ambiguity.

Parameters:
box - The geographic bounding box to add to this box.
Since:
2.2

intersect

public void intersect(GeographicBoundingBox box)
Sets this bounding box to the intersection of this box with the specified one. The inclusion status must be the same for both boxes.

Parameters:
box - The geographic bounding box to intersect with this box.
Since:
2.5

isEmpty

public boolean isEmpty()
Returns true if this bounding box is empty.

Returns:
true if this box is empty.
Since:
2.5

equals

public boolean equals(Object object)
Compares this geographic bounding box with the specified object for equality.

Overrides:
equals in class AbstractMetadata
Parameters:
object - The object to compare for equality.
Returns:
true if the given object is equals to this box.

hashCode

public int hashCode()
Returns a hash code value for this extent.

Overrides:
hashCode in class AbstractMetadata

toString

public String toString()
Returns a string representation of this extent using a default angle pattern.

Overrides:
toString in class AbstractMetadata

toString

public static String toString(GeographicBoundingBox box,
                              String pattern,
                              Locale locale)
Returns a string representation of the specified extent using the specified angle pattern and locale. See AngleFormat for a description of angle patterns.

Parameters:
box - The bounding box to format.
pattern - The angle pattern (e.g. DD°MM'SS.s".
locale - The locale, or null for the default one.
Returns:
A string representation of the given box in the given locale.
Since:
2.2


Copyright © 1996-2009 Geotools. All Rights Reserved.