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

STRGPH - Stereographic

POLSTRGPH - Polar Stereographic

ALBERS - Albers Equal Area Conic

ORTHGPH - Orthographic

GNOMONIC - Gnomonic

MERCATOR - 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**