ALKMaps.Geometry.Collection

A Collection is exactly what it sounds like: A collection of different Geometries.  These are stored in the local parameter components (which can be passed as a parameter to the constructor).

As new geometries are added to the collection, they are NOT cloned.  When removing geometries, they need to be specified by reference (ie you have to pass in the exact geometry to be removed).

The getArea and getLength functions here merely iterate through the components, summing their respective areas and lengths.

Create a new instance with the ALKMaps.Geometry.Collection constructor.

Inherits from

Summary
ALKMaps.Geometry.CollectionA Collection is exactly what it sounds like: A collection of different Geometries.
Properties
components{Array(ALKMaps.Geometry)} The component parts of this geometry
componentTypes{Array(String)} An array of class names representing the types of components that the collection can include.
Constructor
ALKMaps.Geometry.CollectionCreates a Geometry Collection -- a list of geoms.
Functions
destroyDestroy this geometry.
cloneClone this geometry.
getComponentsStringGet a string representing the components for this collection
calculateBoundsRecalculate the bounds by iterating through the components and calling calling extendBounds() on each item.
addComponentsAdd components to this geometry.
addComponentAdd a new component (geometry) to the collection.
removeComponentsRemove components from this geometry.
removeComponentRemove a component from this geometry.
getLengthCalculate the length of this geometry
getAreaCalculate the area of this geometry.
getGeodesicAreaCalculate the approximate area of the polygon were it projected onto the earth.
getCentroidCompute the centroid for this geometry collection.
getGeodesicLengthCalculate the approximate length of the geometry were it projected onto the earth.
moveMoves a geometry by the given displacement along positive x and y axes.
rotateRotate a geometry around some origin
resizeResize a geometry relative to some origin.
distanceToCalculate the closest distance between two geometries (on the x-y plane).
equalsDetermine whether another geometry is equivalent to this one.
transformReproject the components geometry from source to dest.
intersectsDetermine if the input geometry intersects this one.
getVerticesReturn a list of all points in this geometry.

Properties

components

{Array(ALKMaps.Geometry)} The component parts of this geometry

componentTypes

{Array(String)} An array of class names representing the types of components that the collection can include.  A null value means the component types are not restricted.

Constructor

ALKMaps.Geometry.Collection

Creates a Geometry Collection -- a list of geoms.

Parameters

components{Array(ALKMaps.Geometry)} Optional array of geometries

Functions

destroy

destroy: function ()

Destroy this geometry.

clone

clone: function()

Clone this geometry.

Returns

{ALKMaps.Geometry.Collection} An exact clone of this collection

getComponentsString

getComponentsString: function()

Get a string representing the components for this collection

Returns

{String} A string representation of the components of this geometry

calculateBounds

calculateBounds: function()

Recalculate the bounds by iterating through the components and calling calling extendBounds() on each item.

addComponents

addComponents: function(components)

Add components to this geometry.

Parameters

components{Array(ALKMaps.Geometry)} An array of geometries to add

addComponent

addComponent: function(component,
index)

Add a new component (geometry) to the collection.  If this.componentTypes is set, then the component class name must be in the componentTypes array.

The bounds cache is reset.

Parameters

component{ALKMaps.Geometry} A geometry to add
index{int} Optional index into the array to insert the component

Returns

{Boolean} The component geometry was successfully added

removeComponents

removeComponents: function(components)

Remove components from this geometry.

Parameters

components{Array(ALKMaps.Geometry)} The components to be removed

Returns

{Boolean} A component was removed.

removeComponent

removeComponent: function(component)

Remove a component from this geometry.

Parameters

component{ALKMaps.Geometry}

Returns

{Boolean} The component was removed.

getLength

getLength: function()

Calculate the length of this geometry

Returns

{Float} The length of the geometry

getArea

getArea: function()

Calculate the area of this geometry.  Note how this function is overridden in ALKMaps.Geometry.Polygon.

Returns

{Float} The area of the collection by summing its parts

getGeodesicArea

getGeodesicArea: function(projection)

Calculate the approximate area of the polygon were it projected onto the earth.

Parameters

projection{ALKMaps.Projection} The spatial reference system for the geometry coordinates.  If not provided, Geographic/WGS84 is assumed.

Reference

Robert.  G. Chamberlain and William H.  Duquette, “Some Algorithms for Polygons on a Sphere”, JPL Publication 07-03, Jet Propulsion Laboratory, Pasadena, CA, June 2007 https://trs-new.jpl.nasa.gov/dspace/handle/2014/40409

Returns

{float} The approximate geodesic area of the geometry in square meters.

getCentroid

getCentroid: function(weighted)

Compute the centroid for this geometry collection.

Parameters

weighted{Boolean} Perform the getCentroid computation recursively, returning an area weighted average of all geometries in this collection.

Returns

{ALKMaps.Geometry.Point} The centroid of the collection

getGeodesicLength

getGeodesicLength: function(projection)

Calculate the approximate length of the geometry were it projected onto the earth.

projection{ALKMaps.Projection} The spatial reference system for the geometry coordinates.  If not provided, Geographic/WGS84 is assumed.

Returns

{Float} The approximate geodesic length of the geometry in meters.

move

move: function(x,
y)

Moves a geometry by the given displacement along positive x and y axes.  This modifies the position of the geometry and clears the cached bounds.

Parameters

x{Float} Distance to move geometry in positive x direction.
y{Float} Distance to move geometry in positive y direction.

rotate

rotate: function(angle,
origin)

Rotate a geometry around some origin

Parameters

angle{Float} Rotation angle in degrees (measured counterclockwise from the positive x-axis)
origin{ALKMaps.Geometry.Point} Center point for the rotation

resize

resize: function(scale,
origin,
ratio)

Resize a geometry relative to some origin.  Use this method to apply a uniform scaling to a geometry.

Parameters

scale{Float} Factor by which to scale the geometry.  A scale of 2 doubles the size of the geometry in each dimension (lines, for example, will be twice as long, and polygons will have four times the area).
origin{ALKMaps.Geometry.Point} Point of origin for resizing
ratio{Float} Optional x:y ratio for resizing.  Default ratio is 1.

Returns

{<ALKMaps.Geometry>}The current geometry.

distanceTo

distanceTo: function(geometry,
options)

Calculate the closest distance between two geometries (on the x-y plane).

Parameters

geometry{ALKMaps.Geometry} The target geometry.
options{Object} Optional properties for configuring the distance calculation.

Valid options

details{Boolean} Return details from the distance calculation.  Default is false.
edge{Boolean} Calculate the distance from this geometry to the nearest edge of the target geometry.  Default is true.  If true, calling distanceTo from a geometry that is wholly contained within the target will result in a non-zero distance.  If false, whenever geometries intersect, calling distanceTo will return 0.  If false, details cannot be returned.

Returns

{Number | Object} The distance between this geometry and the target.  If details is true, the return will be an object with distance, x0, y0, x1, and y1 properties.  The x0 and y0 properties represent the coordinates of the closest point on this geometry.  The x1 and y1 properties represent the coordinates of the closest point on the target geometry.

equals

equals: function(geometry)

Determine whether another geometry is equivalent to this one.  Geometries are considered equivalent if all components have the same coordinates.

Parameters

geometry{ALKMaps.Geometry} The geometry to test.

Returns

{Boolean} The supplied geometry is equivalent to this geometry.

transform

transform: function(source,
dest)

Reproject the components geometry from source to dest.

Parameters

source{ALKMaps.Projection}
dest{ALKMaps.Projection}

Returns

{ALKMaps.Geometry}

intersects

intersects: function(geometry)

Determine if the input geometry intersects this one.

Parameters

geometry{ALKMaps.Geometry} Any type of geometry.

Returns

{Boolean} The input geometry intersects this one.

getVertices

getVertices: function(nodes)

Return a list of all points in this geometry.

Parameters

nodes{Boolean} For lines, only return vertices that are endpoints.  If false, for lines, only vertices that are not endpoints will be returned.  If not provided, all vertices will be returned.

Returns

{Array} A list of all vertices in the geometry.

A Geometry is a description of a geographic object.
destroy: function ()
Destroy this geometry.
clone: function()
Clone this geometry.
getComponentsString: function()
Get a string representing the components for this collection
calculateBounds: function()
Recalculate the bounds by iterating through the components and calling calling extendBounds() on each item.
addComponents: function(components)
Add components to this geometry.
addComponent: function(component,
index)
Add a new component (geometry) to the collection.
removeComponents: function(components)
Remove components from this geometry.
removeComponent: function(component)
Remove a component from this geometry.
getLength: function()
Calculate the length of this geometry
getArea: function()
Calculate the area of this geometry.
getGeodesicArea: function(projection)
Calculate the approximate area of the polygon were it projected onto the earth.
getCentroid: function(weighted)
Compute the centroid for this geometry collection.
getGeodesicLength: function(projection)
Calculate the approximate length of the geometry were it projected onto the earth.
move: function(x,
y)
Moves a geometry by the given displacement along positive x and y axes.
rotate: function(angle,
origin)
Rotate a geometry around some origin
resize: function(scale,
origin,
ratio)
Resize a geometry relative to some origin.
distanceTo: function(geometry,
options)
Calculate the closest distance between two geometries (on the x-y plane).
equals: function(geometry)
Determine whether another geometry is equivalent to this one.
transform: function(source,
dest)
Reproject the components geometry from source to dest.
intersects: function(geometry)
Determine if the input geometry intersects this one.
getVertices: function(nodes)
Return a list of all points in this geometry.
{Array(ALKMaps.Geometry)} The component parts of this geometry
Creates a Geometry Collection -- a list of geoms.
Polygon is a collection of Geometry.LinearRings.
Methods for coordinate transforms between coordinate systems.
Point geometry class.
Close