Projection |
Overview
Projection is a class used for calculating coordinate transformation in map projection. Map projection is a cartographic technique to project a 3D earth surface, which is represented by an ellipsoid, onto a 2D surface. Projection object is used as a part of "Image" objects' information, so that they are spatially located in a 2D coordinate system, and this makes possible GIS operations.
Most major standard map projections are supported, and transformation between map projections is easy and straight forward. It is also possible to convert map coordinate from a map projection in one datum to another map projection in another datum. All of these operations are just only one statement away. The following are list of currently supported map projection, and their code names used by Noobeed.
UTM - Universal Transverse Mercator
TM - Transverse Mercator
LCC - Lambert Conformal Conic (two parallels)LCC1 - Lambert Conformal Conic (one parallel + scale factor)
STRGPH - Stereographic
POLSTRGPH - Polar Stereographic
ALBERS - Albers Equal Area Conic
ORTHGPH - Orthographic
GNOMONIC - Gnomonic
MERCATOR - MercatorOM - Oblique Mercator
LAEA - Lambert Azimuthal Equal Area
TOPOCTRC - Topocentric (Local Coordinate System)
UNPROJ - Unprojected Longitude and Latitude
Member data
Name | Data type | Meaning |
name | String | map projection name |
Ellipsoid | String | an ellipsoid object |
phe0 | double | latitude origin |
ramda0 | double | longitude origin |
stdlat1 | double | 1st standard parallel |
stdlat2 | double | 2nd standard parallel |
sk0 | double | scale factor at origin |
x0 | double | false easting |
y0 | double | false northing |
Since different map projections require different parameters, it is not possible to define a type of map projection in the construction function. Defining a map projection to a Projection object is done by using class functions, for example setUTM, set TM, etc, each of which will require a certain number of arguments. By this reason, not all member data in a class object are relevant to it. However, Noobeed realizes and will take care of this, for example when printing a Projection object, Noobeed will print only member data that are relevant to the object, and discard all others.
Operator
no operator provided.
Construction function
{Projection} ret = PROJECTION([{Ellipsoid} argm1])
argm1 = ellipsoid (default = default of Ellipsoid())
Example:
->P1 = Projection() |
Lfunction
object.ELLIPSOID() = {Ellipsoid} left-value
Example:
->P1.ellipsoid() = Ellipsoid(6377276.34518,1/300.8014) |
Class function