 |
NAVTOR SDK
v.3.0
Software Development Kit for fast and efficient development of ECDIS, ECS and generic marine applications
|
|
Go to the documentation of this file. 1 #ifndef SDK_CRS_CONST_H_
10 #define SDK_CRS_CONST_H_
13 #if !defined(__cplusplus)
14 #error C++ compiler required.
22 #if defined(__cplusplus)
27 #if defined(__cplusplus)
36 #define kRADIUS 6378137.0L
38 #if !defined(kEQUATOR)
40 #define kEQUATOR 40075016.6855784861L
42 #if !defined(kGeoIntPI)
43 #define kGeoIntPI 2147483648.0 // 0x80000000
45 #if !defined(kGeoInt2PI)
46 #define kGeoInt2PI (2*kGeoIntPI) // 0x100000000
48 #if !defined(kGeoIntPI_2)
49 #define kGeoIntPI_2 (kGeoIntPI/2) // 0x40000000
51 #if !defined(kGeoInt2Deg)
52 #define kGeoInt2Deg (180/kGeoIntPI) // 8.38190317153930664e-8L
54 #if !defined(kGeoInt2Rad)
55 #define kGeoInt2Rad (kPI/kGeoIntPI) // 1.46291807926715968e-9L
57 #if !defined(kRad2GeoInt)
58 #define kRad2GeoInt (kGeoIntPI/kPI) // 6.83565275576431590e+8L
60 #if !defined(kDeg2Rad)
61 #define kDeg2Rad (kPI/180) // 1.74532925199432958e-2L
63 #if !defined(kRad2Deg)
64 #define kRad2Deg (180/kPI) // 5.72957795130823209e+1L
66 #if !defined(kWGS84_NAME)
69 #define kWGS84_NAME "WGS84"
71 #if !defined(kWGS84_E)
73 #define kWGS84_E 0.08181919084262150L
75 #if !defined(kWGS84_E2)
76 #define kWGS84_E2 0.0066943799901413165L
78 #if !defined(kWGS84_E4)
79 #define kWGS84_E4 4.48147234522478E-05L
81 #if !defined(kWGS84_E6)
82 #define kWGS84_E6 3.0000678794192E-07L
84 #if !defined(kWGS84_E8)
85 #define kWGS84_E8 2.00835943810145E-09L
87 #if !defined(kWGS84_ESQUARED)
89 #define kWGS84_ESQUARED kWGS84_E2
91 #if !defined(kWGS84_INVERSE_FLATTENING)
93 #define kWGS84_INVERSE_FLATTENING 298.257223563L
95 #if !defined(kWGS84_SEMIMAJOR)
97 #define kWGS84_SEMIMAJOR 6378137.0L
99 #if !defined(kWGS84_SEMIMINOR)
101 #define kWGS84_SEMIMINOR (kWGS84_SEMIMAJOR*(1-(1/kWGS84_INVERSE_FLATTENING))) // 6356752.3142L
106 #if defined(__cplusplus)
110 #ifndef SDK_CRS_NAMESPACE
111 #define SDK_CRS_NAMESPACE SDK_NAMESPACE::crs
112 #endif // SDK_CRS_NAMESPACE
114 #ifndef SDK_CRS_BEGIN_NAMESPACE
115 #define SDK_CRS_BEGIN_NAMESPACE namespace SDK_NAMESPACE { \
117 #endif // SDK_CRS_BEGIN_NAMESPACE
119 #ifndef SDK_CRS_END_NAMESPACE
120 #define SDK_CRS_END_NAMESPACE } }
121 #endif // SDK_CRS_END_NAMESPACE
123 SDK_CRS_BEGIN_NAMESPACE
278 static const char* ProjectionParameterNames[] = {
283 "latitude_of_origin",
284 "longitude_of_origin",
285 "standard_parallel_1",
286 "standard_parallel_2",
304 } ProjectionPropertyID;
323 static const wchar_t* kProjectionClassNames[] = {
325 L
"Transverse_Mercator",
326 L
"Lambert_Conformal_Conic",
334 static const double kMercatorDegLatMax = 85.001;
335 static const double kMercatorDegLatMin = -85.001;
337 SDK_CRS_END_NAMESPACE
339 #if defined(__cplusplus)
343 #endif // SDK_CRS_CONST_H_
@ kProjPar_FalseNorthing
False northing.
Definition: crs_const.h:265
@ kProjPar_LongitudeOfLocalScale
Longitude of position for getting a local scale.
Definition: crs_const.h:273
@ kAxisOrientationNorth
Increasing ordinates values go North. This is usually used for Grid Y coordinates and Latitude.
Definition: crs_const.h:152
@ kAxisOrientationEast
Increasing ordinates values go East. This is rarely used.
Definition: crs_const.h:156
@ kAngularUnitTypeGeoInt
GeoInt.
Definition: crs_const.h:139
@ kProjPar_UTMZone
UTM Zone.
Definition: crs_const.h:267
@ kProjPar_SemiMajorAxis
Semi-major axis of an ellipsoid.
Definition: crs_const.h:259
@ kProjPar_LongitudeOfCenter
Longitude of the Center of the Projection.
Definition: crs_const.h:239
@ kProjectionClassID_PolarStereographic
Polar Stereographic alias Stereographic.
Definition: crs_const.h:318
@ kProjPar_Azimuth
Azimuth of the Center Line.
Definition: crs_const.h:237
AngularUnitType
Describes the angular unit type for the geographic coordinate system.
Definition: crs_const.h:137
@ kAxisOrientationUnknown
Unknown or unspecified axis orientation. This can be used for local or fitted coordinate systems.
Definition: crs_const.h:149
@ kProjPar_LatitudeOfLocalScale
Latitude of position for getting a local scale.
Definition: crs_const.h:275
AxisOrientation
Describes the axis orientation.
Definition: crs_const.h:146
double AngularUnit
Defines the angular unit. The value is the number of degrees per angular unit.
Definition: crs_const.h:133
@ kProjectionClassID_Stereographic
Stereographic.
Definition: crs_const.h:317
@ kProjPar_LongitudeOfOrigin
Longitude of the Origin of the Projection.
Definition: crs_const.h:247
@ kAxisOrientationWest
Increasing ordinates values go West. This is usually used for Grid X coordinates and Longitude.
Definition: crs_const.h:159
@ kAxisOrientationSouth
Increasing ordinates values go South. This is rarely used.
Definition: crs_const.h:154
@ kProjPar_ScaleFactor
Scale Reduction Factor at the Center of the Projection.
Definition: crs_const.h:243
@ kProjPar_LatitudeOfCenter
Latitude of the Center of the Projection.
Definition: crs_const.h:241
@ kProjectionClassID_LambertConformalConic
Lambert Conformal Conic.
Definition: crs_const.h:314
@ kAxisOrientationUp
Increasing ordinates values go up. This is used for vertical coordinate systems.
Definition: crs_const.h:162
@ kAngularUnitTypeUndefined
Not applicable (Cartesian)
Definition: crs_const.h:141
@ kProjPar_UTMAutoset
UTM. Automatically set zone.
Definition: crs_const.h:271
@ kProjectionClassID_TransverseMercator
Transverse Mercator.
Definition: crs_const.h:313
@ kProjectionClassID_Geo
Geographic.
Definition: crs_const.h:315
@ kProjPar_FalseEasting
False easting.
Definition: crs_const.h:263
ProjectionPropertyEnum
Defines the projection properties.
Definition: crs_const.h:299
@ kProjPar_UTMIsNorth
UTM. Currently in northern hemisphere.
Definition: crs_const.h:269
@ kProjPar_StandardParallel1
Latitude of Pseudo Standard Parallel1. Latitude of Southern Standard Parallel for Lambert Conformal C...
Definition: crs_const.h:251
@ kProjProperty_LocalScale
Definition: crs_const.h:300
@ kAngularUnitTypeRadians
Radians.
Definition: crs_const.h:140
@ kProjectionClassID_LocalCartesian
Local Cartesian.
Definition: crs_const.h:319
@ kProjectionClassID_Gnomonic
Spherical gnomonic.
Definition: crs_const.h:316
@ kProjPar_StandardParallel2
Latitude of Pseudo Standard Parallel2. Latitude of Northern Standard Parallel for Lambert Conformal C...
Definition: crs_const.h:255
@ kProjPar_SemiMinorAxis
Semi-minor axis of an ellipsoid.
Definition: crs_const.h:261
ProjectionParameterEnum
Parameters for the different projections. Required parameters for all projections: ProjPar_Coordinate...
Definition: crs_const.h:235
@ kProjProperty_CorrespondedLocalScale
Definition: crs_const.h:303
ProjectionClassID
Projection classes.
Definition: crs_const.h:311
@ kProjPar_LatitudeOfOrigin
Latitude of the Origin of the Projection.
Definition: crs_const.h:245
@ kProjectionClassID_Mercator
Mercator.
Definition: crs_const.h:312
Math constants definition.
@ kAngularUnitTypeDegree
Degree.
Definition: crs_const.h:138
@ kProjPar_CoordinateUnit
Linear units of coordinates in meters per unit.
Definition: crs_const.h:257
SDK_CRS_BEGIN_NAMESPACE typedef double LinearUnit
Defines the linear unit. The value is the number of meters per linear unit.
Definition: crs_const.h:128
@ kAxisOrientationDown
Increasing ordinates values go down. This is used for vertical coordinate systems.
Definition: crs_const.h:165
@ kProjectionClassID_UTM
UTM.
Definition: crs_const.h:320