gistools/proj/parse/constants.rs
1// Primitives
2
3/// Common Tolerance
4pub const EPS10: f64 = 1e-10;
5/// 3 parameter transform
6pub const PJD_3PARAM: u8 = 1;
7/// 7 parameter transform
8pub const PJD_7PARAM: u8 = 2;
9/// Grid shift transform
10pub const PJD_GRIDSHIFT: u8 = 3;
11/// WGS84 or equivalent
12pub const PJD_WGS84: u8 = 4; // WGS84 or equivalent
13/// No datum applied
14pub const PJD_NODATUM: u8 = 5; // WGS84 or equivalent
15/// SRS WGS84 semimajor only used in grid shift transforms
16pub const SRS_WGS84_SEMIMAJOR: f64 = 6378137.0; // only used in grid shift transforms
17/// SRS WGS84 semiminor only used in grid shift transforms
18pub const SRS_WGS84_SEMIMINOR: f64 = 6356752.314; // only used in grid shift transforms
19/// SRS WGS84 esquared only used in grid shift transforms
20pub const SRS_WGS84_ESQUARED: f64 = 0.0066943799901413165; // only used in grid shift transforms
21/// 1/4 π - Sec to Radians
22pub const SEC_TO_RAD: f64 = 4.848_136_811_095_36e-6;
23/// ellipoid pj_set_ell.c
24pub const SIXTH: f64 = 0.166_666_666_666_666_66;
25/// 1/6
26pub const RA4: f64 = 0.047_222_222_222_222_22;
27/// 17/360
28pub const RA6: f64 = 0.022_156_084_656_084_655;
29/// An arc minute is 1/60th of a degree [(π/180) / 60 radians]
30pub const MIN2R: f64 = 0.0002908882086657216;
31/// An arc second is 1/60th of an arc minute, or 1/3600th of a degree [(π/180) / 3600 radians]
32pub const SEC2R: f64 = 0.00000484813681109536;
33/// The grad, or gradian, is a unit of angular measure where a right angle is 100 grads,
34/// and a full circle is 400 grads.
35/// [1 grad = π/200 radians]
36pub const GRD2R: f64 = 0.015707963267948967;
37/// The gon is equivalent to the grad and is primarily used in surveying.
38/// A full circle is 400 gons.
39/// [1 gon = π/200 radians]
40pub const GON2R: f64 = GRD2R;
41/// SPI is slightly greater than Math.PI, so values that exceed the -180..180
42/// degree range by a tiny amount don't get wrapped. This prevents points that
43/// have drifted from their original location along the 180th meridian (due to
44/// floating point error) from changing their sign.
45#[allow(clippy::approx_constant)]
46pub const SPI: f64 = 3.14159265359;
47
48/// feet to meters
49pub const FT_TO_M: f64 = 0.3048;
50/// US feet to meters (1200 / 3937)
51pub const US_FT_TO_M: f64 = 0.3048006096012192; // 1200 / 3937
52/// US (modified) feet to meters (1200 / 3937)
53pub const US_MOD_FT_TO_M: f64 = 0.304_812_252_984_506; // 1200 / 3937
54/// Linear foot Clarke to meters
55pub const CLARKE_FT_TO_M: f64 = 0.3047972654; // Linear_Foot_Clarke
56/// Linear foot Indian to meters
57pub const INDIAN_FT_TO_M: f64 = 0.3047995; // Linear_Foot_Indian
58/// Linear Yard Indian to meters
59pub const INDIAN_YD_TO_M: f64 = 0.91439523;
60/// Linear foot Link to meters
61pub const LINK_FT_TO_M: f64 = 0.201168; // Linear_Foot_Link
62/// International Fathom to meters
63pub const INTERNATIONAL_FATHOM_TO_M: f64 = 1.8288; // Linear_Fathom
64/// Linear Mile International Nautical
65pub const INTERNATIONAL_NAUTICAL_MILE_TO_M: f64 = 1852.0; // Linear_Mile_International_Nautical
66// /// Linear Mile International Statute
67// pub const INTERNATIONAL_STATUTE_MILE: f64 = 1609.34; // Linear_Mile_International_Statute
68
69// PROJ Specific Constants
70
71/// Used by AEA. Input is boolean
72pub const SOUTH: i64 = 1;
73/// Used by Airy. Input is in degrees
74pub const LAT_B: i64 = 2;
75/// Used by Airy. Input is boolean
76pub const NO_CUT: i64 = 3;
77/// Used by Transverse Mercator. Input is boolean
78pub const APPROX: i64 = 4;
79/// Used by Transverse Mercator. Input is a string
80pub const ALGO: i64 = 5;
81// /// Latitude of true scale. Defines the latitude where scale is not distorted.
82// /// Takes precedence over ``+k_0`` if both options are used together.
83// /// The default convention is to interpret this value as decimal degrees. To
84// /// specify radians instead, follow the value with the "r" character.
85// pub const LAT_TS: i64 = 6;
86/// hyperbolic
87pub const HYPERBOLIC: i64 = 7;
88/// UTM Zone (Used by Universal Transverse Mercator). Value is "real" in range 1-60
89pub const ZONE: i64 = 8;
90/// Czech Republic flag (Used by Krovak). Value is a "bool"
91pub const CZECH: i64 = 9;
92/// User defined theta file
93pub const THETA: i64 = 10;
94/// User defined n value file
95pub const N_VAL: i64 = 11;
96/// User defined m value file
97pub const M_VAL: i64 = 12;
98/// LAT1 or Latitude_Of_1st_Point or Latitude of 1st point
99pub const LATITUDE_OF_FIRST_POINT: i64 = 13;
100/// LAT2 or Latitude_Of_2nd_Point or Latitude of 2nd point
101pub const LATITUDE_OF_SECOND_POINT: i64 = 14;
102/// LON1 or Longitude_Of_1st_Point or Longitude of 1st point
103pub const LONGITUDE_OF_FIRST_POINT: i64 = 15;
104/// LON2 or Longitude_Of_2nd_Point or Longitude of 2nd point
105pub const LONGITUDE_OF_SECOND_POINT: i64 = 16;
106/// NO ROTATION Flag. Used by OMERC projections
107pub const NO_ROTATION: i64 = 17;
108/// No Off. An OMERC projection variable
109pub const NO_OFF: i64 = 18;
110/// No Unsigned Off. An OMERC projection variable
111pub const NO_UOFF: i64 = 19;
112/// GUAM flag. Used by Azimuthal Equidistant projection
113pub const GUAM: i64 = 20;
114
115/// Converts a name to a parameter id
116pub fn name_to_param_id(name: &str) -> i64 {
117 match name.to_lowercase().as_str() {
118 "south" => SOUTH,
119 "lat_b" => LAT_B,
120 "lat_ts" => LATITUDE_STD_PARALLEL,
121 "no_cut" => NO_CUT,
122 "approx" => APPROX,
123 "algo" => ALGO,
124 "hyperbolic" => HYPERBOLIC,
125 "zone" => ZONE,
126 "czech" => CZECH,
127 "theta" => THETA,
128 "n" => N_VAL,
129 "m" => M_VAL,
130 "lat_1" | "Latitude_Of_1st_Point" | "latitude of 1st point" => LATITUDE_OF_FIRST_POINT,
131 "lat_2" | "Latitude_Of_2nd_Point" | "latitude of 2nd point" => LATITUDE_OF_SECOND_POINT,
132 "lon_1" | "Longitude_Of_1st_Point" | "longitude of 1st point" => LONGITUDE_OF_FIRST_POINT,
133 "lon_2" | "Longitude_Of_2nd_Point" | "longitude of 2nd point" => LONGITUDE_OF_SECOND_POINT,
134 "latitude_of_origin" | "latitude_of_center" => LATITUDE_OF_PROJECTION_CENTRE,
135 "longitude_of_center" => LONGITUDE_OF_PROJECTION_CENTRE,
136 "longitude_of_origin" => LONGITUDE_OF_ORIGIN,
137 "standard_parallel_1" => LATITUDE_OF_FIRST_STANDARD_PARALLEL,
138 "standard_parallel_2" => LATITUDE_OF_SECOND_STANDARD_PARALLEL,
139 "false_easting" => FALSE_EASTING,
140 "false_northing" => FALSE_NORTHING,
141 "central_meridian" => LONGITUDE_OF_FALSE_ORIGIN,
142 "scale_factor" => SCALE_FACTOR_AT_NATURAL_ORIGIN,
143 "azi" | "azimuth" => AZIMUTH_PROJECTION_CENTRE,
144 "no_rot" => NO_ROTATION,
145 "no_off" => NO_OFF,
146 "no_unoff" => NO_UOFF,
147 "guam" => GUAM,
148 _ => -1,
149 }
150}
151
152// Map projection methods
153
154/// Web Mercator / Pseudo Mercator Projection
155/// - [EPSG Link](https://epsg.org/coord-operation-method_1024/Popular-Visualisation-Pseudo-Mercator.html)
156/// - EPSG Code: 1024
157/// - EPSG Codes Used by Web Mercator: 8801, 8802, 8806, 8807
158/// - Aliases: "Web Mercator", "Pseudo Mercator", "webmerc"
159pub const WEB_MERCATOR: i64 = 1024;
160/// Azimuthal Equidistant
161/// - [EPSG Link](https://epsg.org/coord-operation-method_1125/Azimuthal-Equidistant.html)
162/// - EPSG Code: 9821
163/// - EPSG Codes Used by AEQD: 8801, 8802, 8806, 8807
164/// - Aliases: "aeqd"
165pub const AZIMUTHAL_EQUIDISTANT: i64 = 1125;
166/// Mercator (Spherical)
167/// - [EPSG Link](https://epsg.org/coord-operation-method_1026/Mercator-Spherical.html)
168/// - EPSG Code: 1026
169/// - EPSG Codes Used by Mercator: 8801, 8802, 8806, 8807
170/// - Aliases: "Mercator", "merc"
171pub const MERCATOR: i64 = 1026;
172/// Mercator Variant A
173/// - [EPSG Link](https://epsg.org/coord-operation-method_9804/Mercator-variant-A.html)
174/// - EPSG Code: 9804
175/// - EPSG Codes Used by Mercator: 8801, 8802, 8805, 8806, 8807
176/// - Aliases: "Mercator", "merc"
177pub const MERCATOR_VARIANT_A: i64 = 9804;
178/// Mercator Variant B
179/// - [EPSG Link](https://epsg.org/coord-operation-method_9805/Mercator-variant-B.html)
180/// - EPSG Code: 9805
181/// - EPSG Codes Used by Mercator: 8823, 8802, 8806, 8807
182/// - Aliases: "Mercator", "merc"
183pub const MERCATOR_VARIANT_B: i64 = 9805;
184/// Albers Equal Area
185/// - [EPSG Link](https://epsg.org/coord-operation-method_9822/Albers-Equal-Area.html)
186/// - EPSG Code: 9822
187/// - EPSG Codes Used by AEA: 8821, 8822, 8823, 8824, 8826, 8827
188/// - Aliases: "Albers", "aea"
189pub const ALBERS_EQUAL_AREA: i64 = 9822;
190/// Bonne
191/// - [EPSG Link](https://epsg.org/coord-operation-method_9827/Bonne.html)
192/// - EPSG Code: 9827
193/// - EPSG Codes Used by Bonne: 8801, 8802, 8806, 8807
194/// - Aliases: "bonne"
195pub const BONNE: i64 = 9827;
196/// Equal Earth
197/// - [EPSG Link](https://epsg.org/coord-operation-method_1078/Equal-Earth.html)
198/// - EPSG Code: 1078
199/// - EPSG Codes Used by Equal Earth: 8802, 8806, 8807
200/// - Aliases: "eqearth"
201pub const EQUAL_EARTH: i64 = 1078;
202/// Equidistant Cylindrical
203/// - [EPSG Link](https://epsg.org/coord-operation-method_1028/Equidistant-Cylindrical.html)
204/// - EPSG Code: 1028
205/// - EPSG Codes Used by Equidistant Cylindrical: 8823, 8802, 8806, 8807
206/// - Aliases: "eqc", "Equidistant Cylindrical (Plate Carree)"
207pub const EQUIDISTANT_CYLINDRICAL: i64 = 1028;
208/// Lambert Conic Conformal (1SP)
209/// - [EPSG Link](https://epsg.org/coord-operation-method_9801/Lambert-Conic-Conformal-1SP.html)
210/// - EPSG Code: 9801
211/// - EPSG Codes Used by Lambert Conic Conformal: 8801, 8802, 8805, 8806, 8807
212/// - Aliases: "lcc", "Lambert Conic Conformal"
213pub const LAMBERT_CONFORMAL_CONIC_1SP: i64 = 9801;
214/// Lambert Conic Conformal (2SP)
215/// - [EPSG Link](https://epsg.org/coord-operation-method_9802/Lambert-Conic-Conformal-2SP.html)
216/// - EPSG Code: 9802
217/// - EPSG Codes Used by Lambert Conic Conformal: 8821, 8822, 8823. 8824, 8826, 8827
218/// - Aliases: "lcc", "Lambert Conic Conformal"
219pub const LAMBERT_CONFORMAL_CONIC_2SP: i64 = 9802;
220/// Cassini-Soldner
221/// - [EPSG Link](https://epsg.org/coord-operation-method_9806/Cassini-Soldner.html)
222/// - EPSG Code: 9806
223/// - EPSG Codes Used by Cassini-Soldner: 8801, 8802, 8806, 8807
224/// - Aliases: "cass", "Cassini"
225pub const CASSINI: i64 = 9806;
226/// Laborde
227/// - [EPSG Link](https://epsg.org/coord-operation-method_9813/Laborde.html)
228/// - EPSG Code: 9813
229/// - EPSG Codes Used by Laborde: 8811, 8812, 8813, 8815, 8806, 8807
230pub const LABORDE: i64 = 9813;
231/// Orthographic
232/// - [EPSG Link](https://epsg.org/coord-operation-method_9840/Orthographic.html)
233/// - EPSG Code: 9840
234/// - EPSG Codes Used by Orthographic: 8801, 8802, 8806, 8807
235pub const ORTHOGRAPHIC: i64 = 9840;
236/// Swiss Oblique Cylindrical
237/// - [EPSG Link](https://epsg.org/coord-operation-method_9814/Swiss-Oblique-Cylindrical.html)
238/// - EPSG Code: 9814
239/// - EPSG Codes Used by SOMERC: 8811, 8812, 8816, 8817
240pub const SOMERC: i64 = 9814;
241/// Transverse Mercator
242/// - [EPSG Link](https://epsg.org/coord-operation-method_9807/Transverse-Mercator.html)
243/// - EPSG Code: 9807
244/// - EPSG Codes Used by Tmerc: 8801, 8802, 8805, 8806, 8807
245pub const TRANSVERSE_MERCATOR: i64 = 9807;
246/// Transverse Mercator (South Orientated)
247/// - [EPSG Link](https://epsg.org/coord-operation-method_9808/Transverse-Mercator-South-Orientated.html)
248/// - EPSG Code: 9808
249/// - EPSG Codes Used by Tmerc: 8801, 8802, 8805, 8806, 8807
250pub const TRANSVERSE_MERCATOR_SOUTH_ORIENTATED: i64 = 9808;
251/// Oblique Stereographic
252/// - [EPSG Link](https://epsg.org/coord-operation-method_9809/Oblique-Stereographic.html)
253/// - EPSG Code: 9809
254/// - EPSG Codes Used by Stereographic: 8801, 8802, 8805, 8806, 8807
255pub const OBLIQUE_STEREOGRAPHIC: i64 = 9809;
256/// Polar Stereographic (variant A)
257/// - [EPSG Link](https://epsg.org/coord-operation-method_9810/Polar-Stereographic-variant-A.html)
258/// - EPSG Code: 9810
259/// - EPSG Codes Used by Stereographic: 8801, 8802, 8805, 8806, 8807
260pub const POLAR_STEREOGRAPHIC_VARIANT_A: i64 = 9810;
261/// Polar Stereographic (variant B)
262/// - [EPSG Link](https://epsg.org/coord-operation-method_9829/Polar-Stereographic-variant-B.html)
263/// - EPSG Code: 9829
264/// - EPSG Codes Used by Stereographic: 8832, 8833, 8806, 8807
265pub const POLAR_STEREOGRAPHIC_VARIANT_B: i64 = 9829;
266/// Polar Stereographic (variant C)
267/// - [EPSG Link](https://epsg.org/coord-operation-method_9830/Polar-Stereographic-variant-C.html)
268/// - EPSG Code: 9830
269/// - EPSG Codes Used by Stereographic: 8832, 8833, 8826, 8827
270pub const POLAR_STEREOGRAPHIC_VARIANT_C: i64 = 9830;
271/// Krovak
272/// - [EPSG Link](https://epsg.org/coord-operation-method_9819/Krovak.html)
273/// - EPSG Code: 9819
274/// - EPSG Codes Used by Krovak: 8811, 8833, 1036, 8818, 8819, 8806, 8807
275pub const KROVAK: i64 = 9819;
276/// Krovak (North Orientated)
277/// - [EPSG Link](https://epsg.org/coord-operation-method_1041/Krovak-North-Orientated.html)
278/// - EPSG Code: 1041
279/// - EPSG Codes Used by Krovak: 8811, 8833, 1036, 8818, 8819, 8806, 8807
280pub const KROVAK_NORTH_ORIENTED: i64 = 1041;
281/// Krovak Modified
282/// - [EPSG Link](https://epsg.org/coord-operation-method_1042/Krovak-Modified.html)
283/// - EPSG Code: 1042
284/// - EPSG Codes Used by Krovak: 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618
285pub const KROVAK_MODIFIED: i64 = 1042;
286/// Krovak Modified (North Orientated)
287/// - [EPSG Link](https://epsg.org/coord-operation-method_1043/Krovak-Modified-North-Orientated.html)
288/// - EPSG Code: 1043
289/// - EPSG Codes Used by Krovak: 8811, 8833, 1036, 8818, 8819, 8806, 8807, 8617, 8618
290pub const KROVAK_MODIFIED_NORTH_ORIENTED: i64 = 1043;
291/// Equidistant Conic
292/// - [EPSG Link](https://epsg.org/coord-operation-method_1119/Equidistant-Conic.html)
293/// - EPSG Code: 1119
294/// - EPSG Codes Used by Equidistant Conic: 8821, 8822, 8823, 8824, 8826, 8827
295pub const EQUIDISTANT_CONIC: i64 = 1119;
296/// Lambert Azimuthal Equal Area
297/// - [EPSG Link](https://epsg.org/coord-operation-method_9820/Lambert-Azimuthal-Equal-Area.html)
298/// - EPSG Code: 9820
299/// - EPSG Codes Used by LEA: 8801, 8802, 8806, 8807
300/// - Aliases: "Lambert Equal Area", "laea"
301pub const LAMBERT_AZIMUTHAL_EQUAL_AREA: i64 = 9820;
302/// Lambert Azimuthal Equal Area (Spherical)
303/// - [EPSG Link](https://epsg.org/coord-operation-method_1027/Lambert-Azimuthal-Equal-Area-Spherical.html)
304/// - EPSG Code: 1027
305/// - EPSG Codes Used by Lambert Azimuthal Equal Area (Spherical): 8801, 8802, 8806, 8807
306/// - Aliases: "laea"
307pub const LAMBERT_AZIMUTHAL_EQUAL_AREA_SPHERICAL: i64 = 1027;
308/// Polyconic
309/// - [EPSG Link](https://epsg.org/coord-operation-method_9818/Polyconic.html)
310/// - EPSG Code: 9818
311/// - EPSG Codes Used by Polyconic: 8801, 8802, 8806, 8807
312/// - Aliases: "Polyconic (American)", "poly"
313pub const POLYCONIC: i64 = 9818;
314/// Hotine Oblique Mercator (variant A)
315/// - [EPSG Link](https://epsg.org/coord-operation-method_9812/Hotine-Oblique-Mercator-variant-A.html)
316/// - EPSG Code: 9812
317/// - EPSG Codes Used by Hotine Oblique Mercator (variant A): 8811, 8812, 8813, 8814, 8815, 8806, 8807
318pub const HOTINE_OBLIQUE_MERCATOR_VARIANT_A: i64 = 9812;
319/// Hotine Oblique Mercator (variant B)
320/// - [EPSG Link](https://epsg.org/coord-operation-method_9815/Hotine-Oblique-Mercator-variant-B.html)
321/// - EPSG Code: 9815
322/// - EPSG Codes Used by Hotine Oblique Mercator (variant B): 8811, 8812, 8813, 8814, 8815, 8816, 8817
323pub const HOTINE_OBLIQUE_MERCATOR_VARIANT_B: i64 = 9815;
324
325// Map projection parameters
326
327/// Latitude of natural origin - ANGLE UNIT
328///
329/// geodetic latitude of the point from which the values of both the geographical coordinates on the
330/// ellipsoid and the grid coordinates on the projection are deemed to increment or decrement for
331/// computational purposes
332/// Alternatively: geodetic latitude of the point which in the absence of application of false
333/// coordinates has grid coordinates of (0,0).
334/// - EPSG Code: `8801`
335/// - Aliases: "latitude of origin", "latitude of natural origin"
336pub const LATITUDE_OF_NATURAL_ORIGIN: i64 = 8801;
337/// Longitude of natural origin - ANGLE UNIT
338///
339/// geodetic longitude of the point from which the values of both the geographical coordinates on
340/// the ellipsoid and the grid coordinates on the projection are deemed to increment or decrement
341/// for computational purposes
342/// Alternatively: geodetic longitude of the point which in the absence of application of false
343/// coordinates has grid coordinates of (0,0).
344/// - EPSG Code: `8802`
345/// - Aliases: "longitude of origin", "longitude of natural origin", "central meridian"
346pub const LONGITUDE_OF_NATURAL_ORIGIN: i64 = 8802;
347/// Scale factor at natural origin - SCALE UNIT
348///
349/// factor by which the map grid is reduced or enlarged during the projection process, defined by its value at the natural origin
350/// - EPSG Code: `8805`
351/// - Aliases: "scale factor at natural origin", "scale factor", "k", "k0", "k_0", "lat_ts" (lat_ts takes precidence over k0)
352pub const SCALE_FACTOR_AT_NATURAL_ORIGIN: i64 = 8805;
353/// False easting - LENGTH UNIT
354///
355/// value assigned to the abscissa (east or west) axis of the projection grid at the natural origin
356/// - EPSG Code: `8806`
357/// - Aliases: "false easting", "x0"
358pub const FALSE_EASTING: i64 = 8806;
359/// False northing - LENGTH UNIT
360///
361/// value assigned to the ordinate (north or south) axis of the projection grid at the natural origin
362/// - EPSG Code: `8807`
363/// - Aliases: "false northing", "y0"
364pub const FALSE_NORTHING: i64 = 8807;
365/// Latitude of projection centre - ANGLE UNIT
366///
367/// For an oblique projection, this is the latitude of the point at which the azimuth of the central
368/// line is defined.
369/// - [EPSG Link](https://epsg.org/coord-op-param_8811/Latitude-of-projection-centre.html)
370/// - EPSG Code: `8811`
371/// - Aliases: "latitude of projection centre", "lat0", "lat_0"
372pub const LATITUDE_OF_PROJECTION_CENTRE: i64 = 8811;
373/// Longitude of projection centre - ANGLE UNIT
374///
375/// For an oblique projection, this is the longitude of the point at which the azimuth of the central
376/// line is defined.
377/// - [EPSG Link](https://epsg.org/coord-op-param_8812/Longitude-of-projection-centre.html)
378/// - EPSG Code: `8812`
379/// - Aliases: "longitude of projection centre", "lon0", "lon_0" "lonc"
380pub const LONGITUDE_OF_PROJECTION_CENTRE: i64 = 8812;
381/// Longitude of origin - ANGLE UNIT
382///
383/// For polar aspect azimuthal projections, the meridian along which the northing axis increments
384/// and also across which parallels of latitude increment towards the north pole.
385/// - [EPSG Link](https://epsg.org/coord-op-param_8833/Longitude-of-origin.html)
386/// - EPSG Code: `8833`
387/// - Aliases: "longitude of origin", "lon0"
388pub const LONGITUDE_OF_ORIGIN: i64 = 8833;
389/// Latitude of False Origin - ANGLE UNIT
390///
391/// geodetic latitude of the point which is not the natural origin and at which grid coordinate
392/// values false easting and false northing are defined
393/// - EPSG Code: `8821`
394/// - Aliases: "latitude of false origin", "latitude of origin", "latitude of natural origin",
395/// "central_parallel", "lat0"
396pub const LATITUDE_OF_FALSE_ORIGIN: i64 = 8821;
397/// Longitude of False Origin - ANGLE UNIT
398///
399/// geodetic longitude of the point which is not the natural origin and at which grid coordinate
400/// values false easting and false northing are defined
401/// - EPSG Code: `8822`
402/// - Aliases: "longitude of false origin", "longitude of natural origin", "longitude of origin",
403/// "central_meridian", "lon0"
404pub const LONGITUDE_OF_FALSE_ORIGIN: i64 = 8822;
405/// Latitude of 1st standard parallel - ANGLE UNIT
406///
407/// For a conic projection with two standard parallels, this is the latitude of one of the
408/// parallels of intersection of the cone with the ellipsoid. It is normally but not necessarily
409/// that nearest to the pole. Scale is true along this parallel.
410/// - [EPSG Link](https://epsg.org/coord-op-param_8823/Latitude-of-1st-standard-parallel.html)
411/// - EPSG Code: `8823`
412/// - Aliases: "latitude of 1st standard parallel", "lat1"/"lat_1"
413pub const LATITUDE_OF_FIRST_STANDARD_PARALLEL: i64 = 8823;
414/// Latitude of 2nd standard parallel - ANGLE UNIT
415///
416/// For a conic projection with two standard parallels, this is the latitude of one of the
417/// parallels at which the cone intersects with the ellipsoid. It is normally but not necessarily
418/// that nearest to the equator. Scale is true along this parallel.
419/// - [EPSG Link](https://epsg.org/coord-op-param_8824/Latitude-of-2nd-standard-parallel.html)
420/// - EPSG Code: `8824`
421/// - Aliases: "latitude of 2nd standard parallel", "lat2"/"lat_2"
422pub const LATITUDE_OF_SECOND_STANDARD_PARALLEL: i64 = 8824;
423/// Easting at false origin - LENGTH UNIT
424///
425/// The easting value assigned to the false origin.
426/// - [EPSG Link](https://epsg.org/coord-op-param_8826/Easting-at-false-origin.html)
427/// - EPSG Code: `8826`
428/// - Aliases: "easting at false origin", "x0"
429pub const EASTING_AT_FALSE_ORIGIN: i64 = 8826;
430/// Northing at false origin - LENGTH UNIT
431///
432/// The northing value assigned to the false origin.
433/// - [EPSG Link](https://epsg.org/coord-op-param_8827/Northing-at-false-origin.html)
434/// - EPSG Code: `8827`
435/// - Aliases: "northing at false origin", "y0"
436pub const NORTHING_AT_FALSE_ORIGIN: i64 = 8827;
437/// Latitude of standard parallel - UNIT
438///
439/// For polar aspect azimuthal projections, the parallel on which the scale factor is defined to be unity.
440/// - [EPSG Link](https://epsg.org/coord-op-param_8832/Latitude-of-standard-parallel.html)
441/// - EPSG Code: `8832`
442/// - Aliases: "standard_parallel_1", "lat_ts"
443pub const LATITUDE_STD_PARALLEL: i64 = 8832;
444/// Azimuth at projection centre - UNIT
445///
446/// The azimuthal direction (north zero, east of north being positive) of the great circle which is
447/// the centre line of an oblique projection. The azimuth is given at the projection centre.
448/// - [EPSG Link](https://epsg.org/coord-op-param_8832/Latitude-of-standard-parallel.html)
449/// - EPSG Code: `8832`
450/// - Aliases: "Azimuth of initial line", "alpha", "azimuth"
451pub const AZIMUTH_PROJECTION_CENTRE: i64 = 8813;
452/// Angle from Rectified to Skew Grid - ANGLE UNIT
453///
454/// The angle at the natural origin of an oblique projection through which the natural coordinate
455/// reference system is rotated to make the projection north axis parallel with true north.
456/// - [EPSG Link](https://epsg.org/coord-op-param_8814/Angle-from-Rectified-to-Skew-Grid.html)
457/// - EPSG Code: `8814`
458/// - Aliases: "Angle from Rectified to Skew Grid", "angle_rectified_to_skew_grid", "gamma"
459pub const ANGLE_RECTIFIED_TO_SKEW_GRID: i64 = 8814;
460
461// #define EPSG_NAME_PARAMETER_COLATITUDE_CONE_AXIS "Co-latitude of cone axis"
462// #define EPSG_CODE_PARAMETER_COLATITUDE_CONE_AXIS 1036
463
464// #define EPSG_NAME_PARAMETER_LATITUDE_PROJECTION_CENTRE \
465// "Latitude of projection centre"
466// #define EPSG_CODE_PARAMETER_LATITUDE_PROJECTION_CENTRE 8811
467
468// #define EPSG_NAME_PARAMETER_LONGITUDE_PROJECTION_CENTRE \
469// "Longitude of projection centre"
470// #define EPSG_CODE_PARAMETER_LONGITUDE_PROJECTION_CENTRE 8812
471
472// // Before EPSG 11.015
473// #define EPSG_NAME_PARAMETER_SCALE_FACTOR_INITIAL_LINE \
474// "Scale factor on initial line"
475// #define EPSG_CODE_PARAMETER_SCALE_FACTOR_INITIAL_LINE 8815
476
477// // Since EPSG 11.015
478// #define EPSG_NAME_PARAMETER_SCALE_FACTOR_PROJECTION_CENTRE \
479// "Scale factor at projection centre"
480// #define EPSG_CODE_PARAMETER_SCALE_FACTOR_PROJECTION_CENTRE 8815
481
482// #define EPSG_NAME_PARAMETER_EASTING_PROJECTION_CENTRE \
483// "Easting at projection centre"
484// #define EPSG_CODE_PARAMETER_EASTING_PROJECTION_CENTRE 8816
485
486// #define EPSG_NAME_PARAMETER_NORTHING_PROJECTION_CENTRE \
487// "Northing at projection centre"
488// #define EPSG_CODE_PARAMETER_NORTHING_PROJECTION_CENTRE 8817
489
490// #define EPSG_NAME_PARAMETER_LATITUDE_PSEUDO_STANDARD_PARALLEL \
491// "Latitude of pseudo standard parallel"
492// #define EPSG_CODE_PARAMETER_LATITUDE_PSEUDO_STANDARD_PARALLEL 8818
493
494// #define EPSG_NAME_PARAMETER_SCALE_FACTOR_PSEUDO_STANDARD_PARALLEL \
495// "Scale factor on pseudo standard parallel"
496// #define EPSG_CODE_PARAMETER_SCALE_FACTOR_PSEUDO_STANDARD_PARALLEL 8819
497
498// #define EPSG_NAME_PARAMETER_LATITUDE_FALSE_ORIGIN "Latitude of false origin"
499// #define EPSG_CODE_PARAMETER_LATITUDE_FALSE_ORIGIN 8821
500
501// #define EPSG_NAME_PARAMETER_LONGITUDE_FALSE_ORIGIN "Longitude of false origin"
502// #define EPSG_CODE_PARAMETER_LONGITUDE_FALSE_ORIGIN 8822
503
504// #define EPSG_NAME_PARAMETER_EASTING_FALSE_ORIGIN "Easting at false origin"
505// #define EPSG_CODE_PARAMETER_EASTING_FALSE_ORIGIN 8826
506
507// #define EPSG_NAME_PARAMETER_NORTHING_FALSE_ORIGIN "Northing at false origin"
508// #define EPSG_CODE_PARAMETER_NORTHING_FALSE_ORIGIN 8827
509
510// #define EPSG_NAME_PARAMETER_ELLIPSOID_SCALE_FACTOR "Ellipsoid scaling factor"
511// #define EPSG_CODE_PARAMETER_ELLIPSOID_SCALE_FACTOR 1038
512
513// #define EPSG_NAME_PARAMETER_LATITUDE_TOPOGRAPHIC_ORIGIN \
514// "Latitude of topocentric origin"
515// #define EPSG_CODE_PARAMETER_LATITUDE_TOPOGRAPHIC_ORIGIN 8834
516
517// #define EPSG_NAME_PARAMETER_LONGITUDE_TOPOGRAPHIC_ORIGIN \
518// "Longitude of topocentric origin"
519// #define EPSG_CODE_PARAMETER_LONGITUDE_TOPOGRAPHIC_ORIGIN 8835
520
521// #define EPSG_NAME_PARAMETER_ELLIPSOIDAL_HEIGHT_TOPOCENTRIC_ORIGIN \
522// "Ellipsoidal height of topocentric origin"
523// #define EPSG_CODE_PARAMETER_ELLIPSOIDAL_HEIGHT_TOPOCENTRIC_ORIGIN 8836
524
525// #define EPSG_NAME_PARAMETER_VIEWPOINT_HEIGHT "Viewpoint height"
526// #define EPSG_CODE_PARAMETER_VIEWPOINT_HEIGHT 8840
527
528// #define EPSG_NAME_PARAMETER_PROJECTION_PLANE_ORIGIN_HEIGHT \
529// "Projection plane origin height"
530// #define EPSG_CODE_PARAMETER_PROJECTION_PLANE_ORIGIN_HEIGHT 1039