Projection Class
A map projection tells how to convert latitude and longitude to plane coordinates.
NuGet/Assembly: Carmenta.Engine.5.16.2.nupkg (in the CECore assembly)
Syntax
public abstract class Projection : ResourceObject
Remarks
A Projection defines how the geographic coordinates (Latitude, Longitude) should be transformed to a plane. A projection is always used as a part of a Crs object; see the class diagram.
The Projection class is an abstract base class, so you must use a derived class to construct a Projection.
See also the Coordinate Systems and the Glossary.
A Point in Carmenta Engine is always three-dimensional with x, y, and z. The x are y projected coordinates, often called easting and northing, while z means height.
In Carmenta Engine, all projections internally follow the mathematical convention that the x-axis goes right, while the y-axis goes up. Some countries have a cartographic convention for axis names that is opposite. So a user interface, designed for the non-mathematical convention, must then ask for an x value but store it as the internal y component, and vice versa. Indeed, some countries have a south-oriented axis convention: the x-axis goes left, and the y-axis goes down. That is to say, the x values grow westwards (and should be called westings rather than eastings), while the y values grow southwards (and should be called southings rather than northings). This convention is not just a matter of renaming the axes, but you can emulate it in Carmenta Engine by using a RotatedProjection (or sometimes a negative scaleFactor is enough). See the Coordinate Systems for more details.
Literature: see Crs.
Inheritance Hierarchy
System.Object (not available in C#)
EngineObject
ResourceObject
Projection
AlbersEqualAreaConicProjection
AzimuthalEqualAreaProjection
AzimuthalEquidistantProjection
CassiniSoldnerProjection
DynamicLocalProjection
EquidistantCylindricalAngularProjection
EquidistantCylindricalProjection
HotineObliqueMercatorProjection
KrovakNorthOrientedProjection
LabordeObliqueMercatorProjection
LambertConformalConicProjection
LongLatProjection
MercatorProjection
MillerCylindricalProjection
NewZealandMapGridProjection
NonGeoreferencedProjection
OrthographicProjection
PolarStereographicProjection
PolynomialProjection
RosenmundObliqueMercatorProjection
RotatedProjection
StereographicProjection
TransverseMercatorProjection
UtmProjection
Platforms
Windows, Linux, Android
Projection Members
The Projection type has the following members.
Properties
Name | Description |
---|---|
Authority | Gets the name of an authority, which is often "epsg". |
AuthorityCode | Gets the unique code for the projection instance, according to the Authority, for example "19883". |
IsDisposed | Gets a value that tells whether the current Projection has been disposed. Inherited from EngineObject |
Gets a pre-defined LongLatProjection instance. | |
Name | Gets or sets the name of the Projection. Inherited from ResourceObject |
NativeHandle | Gets the native Carmenta Engine kernel object the current Projection represents. Inherited from EngineObject |
IUserProperties.UserProperties | Gets the AttributeSet that contains the user properties. Inherited from IUserProperties |
Methods
Name | Description |
---|---|
Clone | Creates a copy of an object. Inherited from EngineObject |
Dispose | Releases the reference to the native Carmenta Engine kernel instance the EngineObject represents. Inherited from EngineObject |
Equals | Determines whether this instance is equal to another. Inherited from EngineObject |
Returns one of the 120 predefined instances of Universal Transverse Mercator. |