HotineObliqueMercatorProjection Class
A map projection also known as Rectified Skew Orthomorphic, or just Oblique Mercator.
NuGet/Assembly: Carmenta.Engine.5.16.2.nupkg (in the CECore assembly)
Syntax
public class HotineObliqueMercatorProjection : Projection
Remarks
The Hotine Oblique Mercator is a kind of oblique Mercator projection, used for conformal mapping.
Of the slightly different variants of oblique Mercator projections, the Hotine Oblique Mercator is the most popular and has been used in Malaysia, Liberia, Michigan, southeast Alaska, and the Great Lakes; it can also be used in Denmark. However, it should not be used for Switzerland or Hungary (they use the RosenmundObliqueMercatorProjection), nor for Madagascar (they use the LabordeObliqueMercatorProjection).
But the original definition, by Martin Hotine for Malaysia, differs in two respects from most other projections.
The true origin (the point whose projected coordinates are falseEasting and falseNorthing) was defined to be at the so-called natural origin near the equator, not at the central point. This does not make the formulas less useful, but their behavior can be somewhat surprising.
True north did not equal grid north at the central point, but at the natural origin. This is a drawback for regions that are farther from the equator than Malaysia.
To improve the first issue, people have constructed a variant of the formulas, where the true origin is the central point. Although this variant is more like other projections, it means that we now have two ways to construct a Hotine Oblique Mercator, and we must be careful to use the correct one. In Carmenta Engine, the choice is controlled by the TrueOrigin parameter.
To improve the second issue, people have constructed several variants of the formulas, where true north can (or must) equal grid north at the central point. The HotineObliqueMercatorProjection supports the most general of these variants, which has two angle parameters instead of one (both Azimuth and RectifiedGridAngle).
Terminology
Since Hotine's original definition has been modified and generalized, there is no terminology that is accepted by all literature or GIS engines. The basic formulas are the same, but the projection can be regarded as a single projection class, as Carmenta Engine and the PROJ library do, or as two distinct projection classes, as EPSG does, or as several distinct projection classes, as ESRI does, etc. See TrueOrigin for more details.
Martin Hotine himself used the term Rectified Skew Orthomorphic, where Orthomorphic means the same as conformal, Skew means oblique, and Rectified refers to a final rotation that makes grid north (more) equal to true north. The term Hotine Oblique Mercator seems to be coined in the United States. In some texts, Rectified Skew Orthomorphic is regarded as a synonym for Hotine Oblique Mercator, but according to other texts, they differ in their number of parameters, or in their default behavior when parameters are omitted. See also Norm Olsen, 2008.
Inheritance Hierarchy
System.Object (not available in C#)
EngineObject
ResourceObject
Projection
HotineObliqueMercatorProjection
Platforms
Windows, Linux, Android
HotineObliqueMercatorProjection Members
The HotineObliqueMercatorProjection type has the following members.
Constructors
Name | Description |
---|---|
HotineObliqueMercatorProjection | Initializes a new instance of the HotineObliqueMercatorProjection class. |
Properties
Name | Description |
---|---|
Authority | Gets the name of an authority, which is often "epsg". Inherited from Projection |
AuthorityCode | Gets the unique code for the projection instance, according to the Authority, for example "19883". Inherited from Projection |
Azimuth | Gets the true azimuth of the central line at the central point. |
CentralLatitude | The central latitude, also known as latitude of origin. |
CentralLongitude | The central longitude, also known as central meridian or longitude of origin. |
FalseEasting | Offset for the x coordinates. |
FalseNorthing | Offset for the y coordinates. |
IsDisposed | Gets a value that tells whether the current HotineObliqueMercatorProjection has been disposed. Inherited from EngineObject |
LengthUnit | The length unit of the projected coordinates. |
Gets a pre-defined LongLatProjection instance. Inherited from Projection | |
Name | Gets or sets the name of the HotineObliqueMercatorProjection. Inherited from ResourceObject |
NativeHandle | Gets the native Carmenta Engine kernel object the current HotineObliqueMercatorProjection represents. Inherited from EngineObject |
RectifiedGridAngle | Gets the grid azimuth of the central line. |
ScaleFactor | A scale factor, by which all projected coordinates will be multiplied. |
TrueOrigin | Gets a property telling where the true origin is located. |
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. Inherited from Projection |