Class GeographicBoundingBoxImpl
- Object
-
- AbstractMetadata
-
- ModifiableMetadata
-
- MetadataEntity
-
- GeographicExtentImpl
-
- 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
-
-
Field Summary
Fields Modifier and Type Field Description static GeographicBoundingBoxWORLDA bounding box ranging from 180°W to 180°E and 90°S to 90°N.-
Fields inherited from class AbstractMetadata
LOGGER
-
-
Constructor Summary
Constructors Constructor Description 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(Rectangle2D bounds)Constructs a geographic bounding box from the specified rectangle.GeographicBoundingBoxImpl(Bounds 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.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(GeographicBoundingBox box)Adds a geographic bounding box to this box.booleanequals(Object object)Compares this geographic bounding box with the specified object for equality.doublegetEastBoundLongitude()Returns the eastern-most coordinate of the limit of the dataset extent.doublegetNorthBoundLatitude()Returns the northern-most, coordinate of the limit of the dataset extent.doublegetSouthBoundLatitude()Returns the southern-most coordinate of the limit of the dataset extent.doublegetWestBoundLongitude()Returns the western-most coordinate of the limit of the dataset extent.inthashCode()Returns a hash code value for this extent.voidintersect(GeographicBoundingBox box)Sets this bounding box to the intersection of this box with the specified one.booleanisEmpty()Returnstrueif this bounding box is empty.voidsetBounds(double westBoundLongitude, double eastBoundLongitude, double southBoundLatitude, double northBoundLatitude)Sets the bounding box to the specified values.voidsetBounds(GeographicBoundingBox box)Sets the bounding box to the same values than the specified box.voidsetEastBoundLongitude(double newValue)Set the eastern-most coordinate of the limit of the dataset extent.voidsetNorthBoundLatitude(double newValue)Set the northern-most, coordinate of the limit of the dataset extent.voidsetSouthBoundLatitude(double newValue)Set the southern-most coordinate of the limit of the dataset extent.voidsetWestBoundLongitude(double newValue)Set the western-most coordinate of the limit of the dataset extent.StringtoString()Returns a string representation of this extent using a default angle pattern.static StringtoString(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 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(Bounds 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:
getWestBoundLongitudein interfaceGeographicBoundingBox- 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:
getEastBoundLongitudein interfaceGeographicBoundingBox- 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:
getSouthBoundLatitudein interfaceGeographicBoundingBox- 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:
getNorthBoundLatitudein interfaceGeographicBoundingBox- 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()
Returnstrueif this bounding box is empty.- Returns:
trueif 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:
equalsin classAbstractMetadata- Parameters:
object- The object to compare for equality.- Returns:
trueif the given object is equals to this box.
-
hashCode
public int hashCode()
Returns a hash code value for this extent.- Overrides:
hashCodein classAbstractMetadata
-
toString
public String toString()
Returns a string representation of this extent using a default angle pattern.- Overrides:
toStringin classAbstractMetadata
-
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. SeeAngleFormatfor 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, ornullfor the default one.- Returns:
- A string representation of the given box in the given locale.
- Since:
- 2.2
-
-