ALKMaps.Bounds

Instances of this class represent bounding boxes.  Data stored as left, bottom, right, top floats.  All values are initialized to null, however, you should make sure you set them before using the bounds for anything.

Possible use case

bounds = new ALKMaps.Bounds();
bounds.extend(new ALKMaps.LonLat(4,5));
bounds.extend(new ALKMaps.LonLat(5,6));
bounds.toBBOX(); // returns 4,5,5,6
Summary
ALKMaps.BoundsInstances of this class represent bounding boxes.
Properties
left{Number} Minimum horizontal coordinate.
bottom{Number} Minimum vertical coordinate.
right{Number} Maximum horizontal coordinate.
top{Number} Maximum vertical coordinate.
centerLonLat{ALKMaps.LonLat} A cached center location.
Constructor
ALKMaps.BoundsConstruct a new bounds object.
Functions
cloneCreate a cloned instance of this bounds.
equalsTest a two bounds for equivalence.
toString{String} String representation of bounds object.
toArray
toBBOX
toGeometryCreate a new polygon geometry based on this bounds.
getWidth{Float} The width of the bounds
getHeight{Float} The height of the bounds (top minus bottom).
getSize{ALKMaps.Size} The size of the box.
getCenterPixel{ALKMaps.Pixel} The center of the bounds in pixel space.
getCenterLonLat{ALKMaps.LonLat} The center of the bounds in map space.
scaleScales the bounds around a pixel or lonlat.
add
extendExtend the bounds to include the point, lonlat, or bounds specified.
containsLonLat
containsPixel
contains
intersectsBoundsDetermine whether the target bounds intersects this bounds.
containsBoundsDetermine whether the target bounds is contained within this bounds.
determineQuadrant
transformTransform the Bounds object from source to dest.
fromStringAlternative constructor that builds a new ALKMaps.Bounds from a parameter string
fromArrayAlternative constructor that builds a new ALKMaps.Bounds from an array
fromSizeAlternative constructor that builds a new ALKMaps.Bounds from a size
oppositeQuadrantGet the opposite quadrant for a given quadrant string.

Properties

left

{Number} Minimum horizontal coordinate.

bottom

{Number} Minimum vertical coordinate.

right

{Number} Maximum horizontal coordinate.

top

{Number} Maximum vertical coordinate.

centerLonLat

{ALKMaps.LonLat} A cached center location.  This should not be accessed directly.  Use getCenterLonLat instead.

Constructor

ALKMaps.Bounds

Construct a new bounds object.  Coordinates can either be passed as four arguments, or as a single argument.

Parameters (four arguments)

left{Number} The left bounds of the box.  Note that for width calculations, this is assumed to be less than the right value.
bottom{Number} The bottom bounds of the box.  Note that for height calculations, this is assumed to be more than the top value.
right{Number} The right bounds.
top{Number} The top bounds.

Parameters (single argument)

bounds{Array(Number)} [left, bottom, right, top]

Functions

clone

clone:function()

Create a cloned instance of this bounds.

Returns

{ALKMaps.Bounds} A fresh copy of the bounds

equals

equals:function(bounds)

Test a two bounds for equivalence.

Parameters

bounds{ALKMaps.Bounds}

Returns

{Boolean} The passed-in bounds object has the same left, right, top, bottom components as this.  Note that if bounds passed in is null, returns false.

toString

toString:function()

Returns

{String} String representation of bounds object.

toArray

toArray: function(reverseAxisOrder)

Parameters

reverseAxisOrder{Boolean} Should we reverse the axis order?

Returns

{Array} array of left, bottom, right, top

toBBOX

toBBOX:function(decimal,
reverseAxisOrder)

Parameters

decimal{Integer} How many significant digits in the bbox coords?  Default is 6
reverseAxisOrder{Boolean} Should we reverse the axis order?

Returns

{String} Simple String representation of bounds object.  (e.g.  <i>”5,42,10,45”</i>)

toGeometry

toGeometry: function()

Create a new polygon geometry based on this bounds.

Returns

{ALKMaps.Geometry.Polygon} A new polygon with the coordinates of this bounds.

getWidth

getWidth:function()

Returns

{Float} The width of the bounds

getHeight

getHeight:function()

Returns

{Float} The height of the bounds (top minus bottom).

getSize

getSize:function()

Returns

{ALKMaps.Size} The size of the box.

getCenterPixel

getCenterPixel:function()

Returns

{ALKMaps.Pixel} The center of the bounds in pixel space.

getCenterLonLat

getCenterLonLat:function()

Returns

{ALKMaps.LonLat} The center of the bounds in map space.

scale

scale: function(ratio,
origin)

Scales the bounds around a pixel or lonlat.  Note that the new bounds may return non-integer properties, even if a pixel is passed.

Parameters

ratio{Float}
origin{ALKMaps.Pixel or ALKMaps.LonLat} Default is center.

Returns

{ALKMaps.Bounds} A new bounds that is scaled by ratio from origin.

add

add:function(x,
y)

Parameters

x{Float}
y{Float}

Returns

{ALKMaps.Bounds} A new bounds whose coordinates are the same as this, but shifted by the passed-in x and y values.

extend

extend:function(object)

Extend the bounds to include the point, lonlat, or bounds specified.  Note, this function assumes that left < right and bottom < top.

Parameters

object{Object} Can be LonLat, Point, or Bounds

containsLonLat

containsLonLat: function(ll,
options)

Parameters

ll{<ALKMaps.LonLat>|Object} ALKMaps.LonLat or an object with a ‘lon’ and ‘lat’ properties.
options{Object} Optional parameters

Acceptable options

inclusive{Boolean} Whether or not to include the border.  Default is true.
worldBounds{ALKMaps.Bounds} If a worldBounds is provided, the ll will be considered as contained if it exceeds the world bounds, but can be wrapped around the dateline so it is contained by this bounds.

Returns

{Boolean} The passed-in lonlat is within this bounds.

containsPixel

containsPixel:function(px,
inclusive)

Parameters

px{ALKMaps.Pixel}
inclusive{Boolean} Whether or not to include the border.  Default is true.

Returns

{Boolean} The passed-in pixel is within this bounds.

contains

contains:function(x,
y,
inclusive)

Parameters

x{Float}
y{Float}
inclusive{Boolean} Whether or not to include the border.  Default is true.

Returns

{Boolean} Whether or not the passed-in coordinates are within this bounds.

intersectsBounds

intersectsBounds:function(bounds,
options)

Determine whether the target bounds intersects this bounds.  Bounds are considered intersecting if any of their edges intersect or if one bounds contains the other.

Parameters

bounds{ALKMaps.Bounds} The target bounds.
options{Object} Optional parameters.

Acceptable options

inclusive{Boolean} Treat coincident borders as intersecting.  Default is true.  If false, bounds that do not overlap but only touch at the border will not be considered as intersecting.
worldBounds{ALKMaps.Bounds} If a worldBounds is provided, two bounds will be considered as intersecting if they intersect when shifted to within the world bounds.  This applies only to bounds that cross or are completely outside the world bounds.

Returns

{Boolean} The passed-in bounds object intersects this bounds.

containsBounds

containsBounds:function(bounds,
partial,
inclusive)

Determine whether the target bounds is contained within this bounds.

bounds{ALKMaps.Bounds} The target bounds.
partial{Boolean} If any of the target corners is within this bounds consider the bounds contained.  Default is false.  If false, the entire target bounds must be contained within this bounds.
inclusive{Boolean} Treat shared edges as contained.  Default is true.

Returns

{Boolean} The passed-in bounds object is contained within this bounds.

determineQuadrant

determineQuadrant: function(lonlat)

Parameters

lonlat{ALKMaps.LonLat}

Returns

{String} The quadrant (“br” “tr” “tl” “bl”) of the bounds in which the coordinate lies.

transform

transform: function(source,
dest)

Transform the Bounds object from source to dest.

Parameters

source{ALKMaps.Projection} Source projection.
dest{ALKMaps.Projection} Destination projection.

Returns

{ALKMaps.Bounds} Itself, for use in chaining operations.

fromString

ALKMaps.Bounds.fromString = function(str,
reverseAxisOrder)

Alternative constructor that builds a new ALKMaps.Bounds from a parameter string

Parameters

str{String}Comma-separated bounds string.  (e.g.  <i>”5,42,10,45”</i>)
reverseAxisOrder{Boolean} Does the string use reverse axis order?

Returns

{ALKMaps.Bounds} New bounds object built from the passed-in String.

fromArray

ALKMaps.Bounds.fromArray = function(bbox,
reverseAxisOrder)

Alternative constructor that builds a new ALKMaps.Bounds from an array

Parameters

bbox{Array(Float)} Array of bounds values (e.g.  <i>[5,42,10,45]</i>)
reverseAxisOrder{Boolean} Does the array use reverse axis order?

Returns

{ALKMaps.Bounds} New bounds object built from the passed-in Array.

fromSize

ALKMaps.Bounds.fromSize = function(size)

Alternative constructor that builds a new ALKMaps.Bounds from a size

Parameters

size{<ALKMaps.Size>|Object} ALKMaps.Size or an object with a ‘w’ and ‘h’ properties.

Returns

{ALKMaps.Bounds} New bounds object built from the passed-in size.

oppositeQuadrant

ALKMaps.Bounds.oppositeQuadrant = function(quadrant)

Get the opposite quadrant for a given quadrant string.

Parameters

quadrant{String} two character quadrant shortstring

Returns

{String} The opposing quadrant (“br” “tr” “tl” “bl”).  For Example, if you pass in “bl” it returns “tr”, if you pass in “br” it returns “tl”, etc.

This class represents a longitude and latitude pair
clone:function()
Create a cloned instance of this bounds.
equals:function(bounds)
Test a two bounds for equivalence.
toString:function()
{String} String representation of bounds object.
toArray: function(reverseAxisOrder)
toBBOX:function(decimal,
reverseAxisOrder)
toGeometry: function()
Create a new polygon geometry based on this bounds.
getWidth:function()
{Float} The width of the bounds
getHeight:function()
{Float} The height of the bounds (top minus bottom).
getSize:function()
{ALKMaps.Size} The size of the box.
Instances of this class represent a width/height pair
getCenterPixel:function()
{ALKMaps.Pixel} The center of the bounds in pixel space.
This class represents a screen coordinate, in x and y coordinates
getCenterLonLat:function()
{ALKMaps.LonLat} The center of the bounds in map space.
scale: function(ratio,
origin)
Scales the bounds around a pixel or lonlat.
add:function(x,
y)
extend:function(object)
Extend the bounds to include the point, lonlat, or bounds specified.
containsLonLat: function(ll,
options)
containsPixel:function(px,
inclusive)
contains:function(x,
y,
inclusive)
intersectsBounds:function(bounds,
options)
Determine whether the target bounds intersects this bounds.
containsBounds:function(bounds,
partial,
inclusive)
Determine whether the target bounds is contained within this bounds.
determineQuadrant: function(lonlat)
transform: function(source,
dest)
Transform the Bounds object from source to dest.
ALKMaps.Bounds.fromString = function(str,
reverseAxisOrder)
Alternative constructor that builds a new ALKMaps.Bounds from a parameter string
ALKMaps.Bounds.fromArray = function(bbox,
reverseAxisOrder)
Alternative constructor that builds a new ALKMaps.Bounds from an array
ALKMaps.Bounds.fromSize = function(size)
Alternative constructor that builds a new ALKMaps.Bounds from a size
ALKMaps.Bounds.oppositeQuadrant = function(quadrant)
Get the opposite quadrant for a given quadrant string.
Construct a new bounds object.
Polygon is a collection of Geometry.LinearRings.
Methods for coordinate transforms between coordinate systems.
Close