HorizontalCRS Class
Horizontal Geographic Coordinate reference System implementation. An horizontal CRS defines the portion which is horizontal to the Earth surface (within the deformation brought by the projection process). There are two major classes of Horizontal Coordinate Reference Systems:
- The projected CRS which rely on a projection to flatten the coordinate system space into axises using linear units (meter, US Survey Feet, ...) relative to some origin.
- The non projected CRS (also named geographic CRS by EPSG nomenclature) that does not require a projection (projection method = None) and horizontal coordinates are expressed as longitude and latitude (see Cartographic) Horizontal Coordinate Systems rely on a projection to flatten the surface of an ellipsoid (see GeodeticEllipsoid) which is the mathematical model of the Earth surface. Explanations in more details of the various concepts can be obtained from other sources including the page on the subject on itwinJS.org (see https://www.itwinjs.org/learning/geolocation/?term=coordinate+system). A few details are still required to grasp the model. Geographic Coordinate Reference Systems rely on the concept of geodetic datums (see GeodeticDatum) to convert latitude/longitude from one frame of reference to another. Such geodetic datum will bind the ellipsoid and possibly define transformation steps required to convert from the currently used geodetic datum to the common datum WGS84 used for worldwide data (such as most popular imagery data sources). If there are no rules established to convert to WGS84 or if those rules are secret then the horizontal CRS can be datum-less and must make direct use of the ellipsoid to define the earth surface. For this purpose either the geodetic datum must be specified using either datumId or datum properties or both. If both these values are undefined then it is possible to define the ellipsoid using properties ellipsoidId or ellipsoid or both. These two pairs of properties are mutually exclusive with datum related properties having precedence. If a datum or datumId is set then ellipsoid properties will automatically be undefined. If datumId or datum is defined then attempts to set ellipsoidId or ellipsoid will fail silently, the values remaining undefined. The ellipsoidId will not be a repeat of the ellipsoidId property part of the geodetic datum definition.
Implements
Methods
Name | Description | |
---|---|---|
constructor(_data?: HorizontalCRSProps): HorizontalCRS | ||
equals(other: HorizontalCRS): boolean | Compares two horizontal CRS. | |
toJSON(): HorizontalCRSProps | Creates a JSON from the Horizontal CRS definition | |
fromJSON(data: HorizontalCRSProps): HorizontalCRS Static | Creates an Horizontal CRS from JSON representation. |
Properties
Name | Type | Description | |
---|---|---|---|
datum Readonly | undefined | GeodeticDatum | The complete definition of the geodetic datum referred to by datumId. | |
datumId Readonly | undefined | string | The identifier of the geodetic datum as stored in the dictionary or the service database. | |
deprecated Readonly | boolean | If true then indicates the definition is deprecated. | |
description Readonly | undefined | string | Description | |
ellipsoid Readonly | undefined | GeodeticEllipsoid | The complete definition of the geodetic ellipsoid referred to by ellipsoidId. | |
ellipsoidId Readonly | undefined | string | The identifier of the geodetic ellipsoid as stored in the dictionary or the service database. | |
epsg Readonly | undefined | number | The EPSG code of the CRS. | |
extent Readonly | undefined | HorizontalCRSExtent | Extent representing the domain of application of the CRS. | |
id Readonly | undefined | string | The identifier of the horizontal CRS as stored in the dictionary or the service database | |
name Readonly | undefined | string | Used only for user-defined definitions that will typically use a GUID as id. | |
projection Readonly | undefined | Projection | Projection including projection parameters. | |
source Readonly | undefined | string | The source of the CRS definition. | |
unit Readonly | undefined | UnitType | The text indicating the unit used. |
Defined in
Last Updated: 30 November, 2023