ALKMaps.Projection

Methods for coordinate transforms between coordinate systems.  By default, OpenLayers ships with the ability to transform coordinates between geographic (EPSG:4326) and web or spherical mercator (EPSG:900913 et al.) coordinate reference systems.  See the transform method for details on usage.

Additional transforms may be added by using the proj4js library.  If the proj4js library is included, the transform method will work between any two coordinate reference systems with proj4js definitions.

If the proj4js library is not included, or if you wish to allow transforms between arbitrary coordinate reference systems, use the addTransform method to register a custom transform method.

Summary
ALKMaps.ProjectionMethods for coordinate transforms between coordinate systems.
Properties
proj{Object} Proj4js.Proj instance.
projCode{String}
titleRegEx{RegExp} regular expression to strip the title from a proj4js definition
Constructor
ALKMaps.ProjectionThis class offers several methods for interacting with a wrapped pro4js projection object.
Functions and Properties
getCodeGet the string SRS code.
getUnitsGet the units string for the projection -- returns null if proj4js is not available.
toStringConvert projection to string (getCode wrapper).
equalsTest equality of two projection instances.
destroyDestroy projection object.
transforms{Object} Transforms is an object, with from properties, each of which may have a to property.
defaults{Object} Defaults for the SRS codes known to ALKMaps (currently EPSG:4326, CRS:84, urn:ogc:def:crs:EPSG:6.6:4326, EPSG:900913, EPSG:3857, EPSG:102113 and EPSG:102100).
addTransformSet a custom transform method between two projections.
transformTransform a point coordinate from one projection to another.
nullTransform

Properties

proj

{Object} Proj4js.Proj instance.

projCode

{String}

titleRegEx

{RegExp} regular expression to strip the title from a proj4js definition

Constructor

ALKMaps.Projection

This class offers several methods for interacting with a wrapped pro4js projection object.

Parameters

projCode{String} A string identifying the Well Known Identifier for the projection.
options{Object} An optional object to set additional properties on the projection.

Returns

{ALKMaps.Projection} A projection object.

Functions and Properties

getCode

getCode: function()

Get the string SRS code.

Returns

{String} The SRS code.

getUnits

getUnits: function()

Get the units string for the projection -- returns null if proj4js is not available.

Returns

{String} The units abbreviation.

toString

toString: function()

Convert projection to string (getCode wrapper).

Returns

{String} The projection code.

equals

equals: function(projection)

Test equality of two projection instances.  Determines equality based solely on the projection code.

Returns

{Boolean} The two projections are equivalent.

destroy

destroy: function()

Destroy projection object.

transforms

{Object} Transforms is an object, with from properties, each of which may have a to property.  This allows you to define projections without requiring support for proj4js to be included.

This object has keys which correspond to a ‘source’ projection object.  The keys should be strings, corresponding to the projection.getCode() value.  Each source projection object should have a set of destination projection keys included in the object.

Each value in the destination object should be a transformation function, where the function is expected to be passed an object with a .x and a .y property.  The function should return the object, with the .x and .y transformed according to the transformation function.

NoteProperties on this object should not be set directly.  To add a transform method to this object, use the addTransform method.  For an example of usage, see the ALKMaps.Layer.SphericalMercator file.

defaults

{Object} Defaults for the SRS codes known to ALKMaps (currently EPSG:4326, CRS:84, urn:ogc:def:crs:EPSG:6.6:4326, EPSG:900913, EPSG:3857, EPSG:102113 and EPSG:102100).  Keys are the SRS code, values are units, maxExtent (the validity extent for the SRS) and yx (true if this SRS is known to have a reverse axis order).

addTransform

ALKMaps.Projection.addTransform = function(from,
to,
method)

Set a custom transform method between two projections.  Use this method in cases where the proj4js lib is not available or where custom projections need to be handled.

Parameters

from{String} The code for the source projection
to{String} the code for the destination projection
method{Function} A function that takes a point as an argument and transforms that point from the source to the destination projection in place.  The original point should be modified.

transform

ALKMaps.Projection.transform = function(point,
source,
dest)

Transform a point coordinate from one projection to another.  Note that the input point is transformed in place.

Parameters

point{ALKMaps.Geometry.Point | Object} An object with x and y properties representing coordinates in those dimensions.
source{ALKMaps.Projection} Source map coordinate system
dest{ALKMaps.Projection} Destination map coordinate system

Returns

point{object} A transformed coordinate.  The original point is modified.

nullTransform

ALKMaps.Projection.nullTransform = function(point)
A null transformationuseful for defining projection aliases when proj4js is not available:
ALKMaps.Projection.addTransform("EPSG:3857", "EPSG:900913",
    ALKMaps.Projection.nullTransform);
ALKMaps.Projection.addTransform("EPSG:900913", "EPSG:3857",
    ALKMaps.Projection.nullTransform);
getCode: function()
Get the string SRS code.
getUnits: function()
Get the units string for the projection -- returns null if proj4js is not available.
toString: function()
Convert projection to string (getCode wrapper).
equals: function(projection)
Test equality of two projection instances.
destroy: function()
Destroy projection object.
ALKMaps.Projection.addTransform = function(from,
to,
method)
Set a custom transform method between two projections.
ALKMaps.Projection.transform = function(point,
source,
dest)
Transform a point coordinate from one projection to another.
ALKMaps.Projection.nullTransform = function(point)
This class offers several methods for interacting with a wrapped pro4js projection object.
Point geometry class.
Close