# Rectangle

#### new Cesium.Rectangle(west, south, east, north)
Core/Rectangle.js 34

A two dimensional region specified as longitude and latitude coordinates.

Name | Type | Default | Description
--- | --- | --- | ---
`west` | Number | `0.0` | optional The westernmost longitude, in radians, in the range [-Pi, Pi].
`south` | Number | `0.0` | optional The southernmost latitude, in radians, in the range [-Pi/2, Pi/2].
`east` | Number | `0.0` | optional The easternmost longitude, in radians, in the range [-Pi, Pi].
`north` | Number | `0.0` | optional The northernmost latitude, in radians, in the range [-Pi/2, Pi/2].

##### See:

- Packable

### Members

#### static constantCesium.Rectangle.MAX_VALUE : Rectangle
Core/Rectangle.js 881

The largest possible rectangle.

#### staticCesium.Rectangle.packedLength : Number
Core/Rectangle.js 96

The number of elements used to pack the object into an array.

#### east : Number
Core/Rectangle.js 57

The easternmost longitude in radians in the range [-Pi, Pi].

Default Value: `0.0`

#### height : Number
Core/Rectangle.js 85

Gets the height of the rectangle in radians.

#### north : Number
Core/Rectangle.js 65

The northernmost latitude in radians in the range [-Pi/2, Pi/2].

Default Value: `0.0`

#### south : Number
Core/Rectangle.js 49

The southernmost latitude in radians in the range [-Pi/2, Pi/2].

Default Value: `0.0`

#### west : Number
Core/Rectangle.js 41

The westernmost longitude in radians in the range [-Pi, Pi].

Default Value: `0.0`

#### width : Number
Core/Rectangle.js 74

Gets the width of the rectangle in radians.

### Methods

#### staticCesium.Rectangle.center(rectangle, result) → Cartographic
Core/Rectangle.js 571

Computes the center of a rectangle.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle for which to find the center
`result` | Cartographic | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartographic instance if none was provided.

#### staticCesium.Rectangle.clone(rectangle, result) → Rectangle
Core/Rectangle.js 352

Duplicates a Rectangle.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle to clone.
`result` | Rectangle | optional The object onto which to store the result, or undefined if a new instance should be created.

##### Returns:

The modified result parameter or a new Rectangle instance if none was provided. (Returns undefined if rectangle is undefined)

#### staticCesium.Rectangle.computeHeight(rectangle) → Number
Core/Rectangle.js 171

Computes the height of a rectangle in radians.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle to compute the height of.

##### Returns:

The height.

#### staticCesium.Rectangle.computeWidth(rectangle) → Number
Core/Rectangle.js 154

Computes the width of a rectangle in radians.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle to compute the width of.

##### Returns:

The width.

#### staticCesium.Rectangle.contains(rectangle, cartographic) → Boolean
Core/Rectangle.js 773

Returns true if the cartographic is on or inside the rectangle, false otherwise.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle
`cartographic` | Cartographic | The cartographic to test.

##### Returns:

true if the provided cartographic is inside the rectangle, false otherwise.

#### staticCesium.Rectangle.equals(left, right) → Boolean
Core/Rectangle.js 421

Compares the provided rectangles and returns `true` if they are equal, `false` otherwise.

Name | Type | Description
--- | --- | ---
`left` | Rectangle | optional The first Rectangle.
`right` | Rectangle | optional The second Rectangle.

##### Returns:

`true` if left and right are equal; otherwise `false`.

#### staticCesium.Rectangle.equalsEpsilon(left, right, absoluteEpsilon) → Boolean
Core/Rectangle.js 378

Compares the provided Rectangles componentwise and returns `true` if they pass an absolute or relative tolerance test, `false` otherwise.

Name | Type | Description
--- | --- | ---
`left` | Rectangle | optional The first Rectangle.
`right` | Rectangle | optional The second Rectangle.
`absoluteEpsilon` | Number | The absolute epsilon tolerance to use for equality testing.

##### Returns:

`true` if left and right are within the provided epsilon, `false` otherwise.

#### staticCesium.Rectangle.expand(rectangle, cartographic, result) → Rectangle
Core/Rectangle.js 748

Computes a rectangle by enlarging the provided rectangle until it contains the provided cartographic.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | A rectangle to expand.
`cartographic` | Cartographic | A cartographic to enclose in a rectangle.
`result` | Rectangle | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Rectangle instance if one was not provided.

#### staticCesium.Rectangle.fromCartesianArray(cartesians, ellipsoid, result) → Rectangle
Core/Rectangle.js 297

Creates the smallest possible Rectangle that encloses all positions in the provided array.

Name | Type | Default | Description
--- | --- | --- | ---
`cartesians` | Array.<Cartesian3> |  | The list of Cartesian instances.
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid the cartesians are on.
`result` | Rectangle |  | optional The object onto which to store the result, or undefined if a new instance should be created.

##### Returns:

The modified result parameter or a new Rectangle instance if none was provided.

#### staticCesium.Rectangle.fromCartographicArray(cartographics, result) → Rectangle
Core/Rectangle.js 242

Creates the smallest possible Rectangle that encloses all positions in the provided array.

Name | Type | Description
--- | --- | ---
`cartographics` | Array.<Cartographic> | The list of Cartographic instances.
`result` | Rectangle | optional The object onto which to store the result, or undefined if a new instance should be created.

##### Returns:

The modified result parameter or a new Rectangle instance if none was provided.

#### staticCesium.Rectangle.fromDegrees(west, south, east, north, result) → Rectangle
Core/Rectangle.js 191

Creates a rectangle given the boundary longitude and latitude in degrees.

Name | Type | Default | Description
--- | --- | --- | ---
`west` | Number | `0.0` | optional The westernmost longitude in degrees in the range [-180.0, 180.0].
`south` | Number | `0.0` | optional The southernmost latitude in degrees in the range [-90.0, 90.0].
`east` | Number | `0.0` | optional The easternmost longitude in degrees in the range [-180.0, 180.0].
`north` | Number | `0.0` | optional The northernmost latitude in degrees in the range [-90.0, 90.0].
`result` | Rectangle |  | optional The object onto which to store the result, or undefined if a new instance should be created.

##### Returns:

The modified result parameter or a new Rectangle instance if none was provided.

##### Example:

    var rectangle = Cesium.Rectangle.fromDegrees(0.0, 20.0, 10.0, 30.0);

#### staticCesium.Rectangle.fromRadians(west, south, east, north, result) → Rectangle
Core/Rectangle.js 222

Creates a rectangle given the boundary longitude and latitude in radians.

Name | Type | Default | Description
--- | --- | --- | ---
`west` | Number | `0.0` | optional The westernmost longitude in radians in the range [-Math.PI, Math.PI].
`south` | Number | `0.0` | optional The southernmost latitude in radians in the range [-Math.PI/2, Math.PI/2].
`east` | Number | `0.0` | optional The easternmost longitude in radians in the range [-Math.PI, Math.PI].
`north` | Number | `0.0` | optional The northernmost latitude in radians in the range [-Math.PI/2, Math.PI/2].
`result` | Rectangle |  | optional The object onto which to store the result, or undefined if a new instance should be created.

##### Returns:

The modified result parameter or a new Rectangle instance if none was provided.

##### Example:

    var rectangle = Cesium.Rectangle.fromRadians(0.0, Math.PI/4, Math.PI/8, 3*Math.PI/4);

#### staticCesium.Rectangle.intersection(rectangle, otherRectangle, result) → Rectangle|undefined
Core/Rectangle.js 608

Computes the intersection of two rectangles. This function assumes that the rectangle's coordinates are latitude and longitude in radians and produces a correct intersection, taking into account the fact that the same angle can be represented with multiple values as well as the wrapping of longitude at the anti-meridian. For a simple intersection that ignores these factors and can be used with projected coordinates, see `Rectangle.simpleIntersection`.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | On rectangle to find an intersection
`otherRectangle` | Rectangle | Another rectangle to find an intersection
`result` | Rectangle | optional The object onto which to store the result.

##### Returns:

The modified result parameter, a new Rectangle instance if none was provided or undefined if there is no intersection.

#### staticCesium.Rectangle.northeast(rectangle, result) → Cartographic
Core/Rectangle.js 529

Computes the northeast corner of a rectangle.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle for which to find the corner
`result` | Cartographic | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartographic instance if none was provided.

#### staticCesium.Rectangle.northwest(rectangle, result) → Cartographic
Core/Rectangle.js 508

Computes the northwest corner of a rectangle.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle for which to find the corner
`result` | Cartographic | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartographic instance if none was provided.

#### staticCesium.Rectangle.pack(value, array, startingIndex) → Array.<Number>
Core/Rectangle.js 107

Stores the provided instance into the provided array.

Name | Type | Default | Description
--- | --- | --- | ---
`value` | Rectangle |  | The value to pack.
`array` | Array.<Number> |  | The array to pack into.
`startingIndex` | Number | `0` | optional The index into the array at which to start packing the elements.

##### Returns:

The array that was packed into

#### staticCesium.Rectangle.simpleIntersection(rectangle, otherRectangle, result) → Rectangle|undefined
Core/Rectangle.js 667

Computes a simple intersection of two rectangles. Unlike `Rectangle.intersection`, this function does not attempt to put the angular coordinates into a consistent range or to account for crossing the anti-meridian. As such, it can be used for rectangles where the coordinates are not simply latitude and longitude (i.e. projected coordinates).

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | On rectangle to find an intersection
`otherRectangle` | Rectangle | Another rectangle to find an intersection
`result` | Rectangle | optional The object onto which to store the result.

##### Returns:

The modified result parameter, a new Rectangle instance if none was provided or undefined if there is no intersection.

#### staticCesium.Rectangle.southeast(rectangle, result) → Cartographic
Core/Rectangle.js 550

Computes the southeast corner of a rectangle.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle for which to find the corner
`result` | Cartographic | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartographic instance if none was provided.

#### staticCesium.Rectangle.southwest(rectangle, result) → Cartographic
Core/Rectangle.js 487

Computes the southwest corner of a rectangle.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle for which to find the corner
`result` | Cartographic | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Cartographic instance if none was provided.

#### staticCesium.Rectangle.subsample(rectangle, ellipsoid, surfaceHeight, result) → Array.<Cartesian3>
Core/Rectangle.js 809

Samples a rectangle so that it includes a list of Cartesian points suitable for passing to `BoundingSphere#fromPoints`. Sampling is necessary to account for rectangles that cover the poles or cross the equator.

Name | Type | Default | Description
--- | --- | --- | ---
`rectangle` | Rectangle |  | The rectangle to subsample.
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional The ellipsoid to use.
`surfaceHeight` | Number | `0.0` | optional The height of the rectangle above the ellipsoid.
`result` | Array.<Cartesian3> |  | optional The array of Cartesians onto which to store the result.

##### Returns:

The modified result parameter or a new Array of Cartesians instances if none was provided.

#### staticCesium.Rectangle.union(rectangle, otherRectangle, result) → Rectangle
Core/Rectangle.js 701

Computes a rectangle that is the union of two rectangles.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | A rectangle to enclose in rectangle.
`otherRectangle` | Rectangle | A rectangle to enclose in a rectangle.
`result` | Rectangle | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Rectangle instance if none was provided.

#### staticCesium.Rectangle.unpack(array, startingIndex, result) → Rectangle
Core/Rectangle.js 131

Retrieves an instance from a packed array.

Name | Type | Default | Description
--- | --- | --- | ---
`array` | Array.<Number> |  | The packed array.
`startingIndex` | Number | `0` | optional The starting index of the element to be unpacked.
`result` | Rectangle |  | optional The object into which to store the result.

##### Returns:

The modified result parameter or a new Rectangle instance if one was not provided.

#### staticCesium.Rectangle.validate(rectangle)
Core/Rectangle.js 458

Checks a Rectangle's properties and throws if they are not in valid ranges.

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | The rectangle to validate

##### Throws:

- DeveloperError : `north` must be in the interval [`-Pi/2`, `Pi/2`].
- DeveloperError : `south` must be in the interval [`-Pi/2`, `Pi/2`].
- DeveloperError : `east` must be in the interval [`-Pi`, `Pi`].
- DeveloperError : `west` must be in the interval [`-Pi`, `Pi`].

#### clone(result) → Rectangle
Core/Rectangle.js 398

Duplicates this Rectangle.

Name | Type | Description
--- | --- | ---
`result` | Rectangle | optional The object onto which to store the result.

##### Returns:

The modified result parameter or a new Rectangle instance if none was provided.

#### equals(other) → Boolean
Core/Rectangle.js 409

Compares the provided Rectangle with this Rectangle componentwise and returns `true` if they are equal, `false` otherwise.

Name | Type | Description
--- | --- | ---
`other` | Rectangle | optional The Rectangle to compare.

##### Returns:

`true` if the Rectangles are equal, `false` otherwise.

#### equalsEpsilon(other, epsilon) → Boolean
Core/Rectangle.js 440

Compares the provided Rectangle with this Rectangle componentwise and returns `true` if they are within the provided epsilon, `false` otherwise.

Name | Type | Description
--- | --- | ---
`other` | Rectangle | optional The Rectangle to compare.
`epsilon` | Number | The epsilon to use for equality testing.

##### Returns:

`true` if the Rectangles are within the provided epsilon, `false` otherwise.