API Documentation
Loading...
Searching...
No Matches
Datum.h
Go to the documentation of this file.
1#pragma once
5namespace NDEVR
6{
7 struct TransverseMercator
8 {
9 enum Mode
10 {
11 e_default
12 , e_Schreiber
13 , e_SouthOriented
14 , e_TunisiaMappingGrid
15 , e_LambertConicConformal
16 };
17 Vector<2, Angle<fltp08>> center_lat_lon;
18 Vector<2, fltp08> false_northing_easting;
19 fltp08 scale = 1.0;
20 };
21 struct TwoPointEquidistant
22 {
23 LineSegment<2, Angle<fltp08>> lat_lon_line;
24 Vector<2, fltp08> false_northing_easting;
25 };
26
27 struct EqualArea
28 {
29 enum Mode
30 {
31 e_default
32 , e_LambertConicConformal
33 , e_LambertConicConformal_Michigan
34 , e_LambertConicConformal_Belgium
35 };
36 Vector<2, Angle<fltp08>> false_origin_lat_lon;
37 Vector<2, Angle<fltp08>> latitude_parallel;
38 Vector<2, fltp08> false_northing_easting;
39 };
40 struct AzimuthalEquidistant
41 {
42 enum Mode
43 {
44 e_default
45 , e_Guam
46 , e_Bonne
47 , e_LambertConicConformal_Belgium
48 };
49 Vector<2, Angle<fltp08>> nat_origin_lat_lon;
50 Vector<2, fltp08> false_northing_easting;
51 };
52 struct UTM
53 {
54 uint04 zone;
55 bool north;
56 };
57
58 PROJ_DLL static ConversionNNPtr createLambertCylindricalEqualAreaSpherical(
59 const util::PropertyMap& properties,
60 const common::Angle& latitudeFirstParallel,
61 const common::Angle& longitudeNatOrigin,
62 const common::Length& falseEasting,
63 const common::Length& falseNorthing);
64
65 PROJ_DLL static ConversionNNPtr createLambertCylindricalEqualArea(
66 const util::PropertyMap& properties,
67 const common::Angle& latitudeFirstParallel,
68 const common::Angle& longitudeNatOrigin,
69 const common::Length& falseEasting,
70 const common::Length& falseNorthing);
71
72 PROJ_DLL static ConversionNNPtr createCassiniSoldner(
73 const util::PropertyMap& properties, const common::Angle& centerLat,
74 const common::Angle& centerLong, const common::Length& falseEasting,
75 const common::Length& falseNorthing);
76
77 PROJ_DLL static ConversionNNPtr
78 createEquidistantConic(const util::PropertyMap& properties,
79 const common::Angle& centerLat,
80 const common::Angle& centerLong,
81 const common::Angle& latitudeFirstParallel,
82 const common::Angle& latitudeSecondParallel,
83 const common::Length& falseEasting,
84 const common::Length& falseNorthing);
85
86 PROJ_DLL static ConversionNNPtr
87 createEckertI(const util::PropertyMap& properties,
88 const common::Angle& centerLong,
89 const common::Length& falseEasting,
90 const common::Length& falseNorthing);
91
92 PROJ_DLL static ConversionNNPtr
93 createEckertII(const util::PropertyMap& properties,
94 const common::Angle& centerLong,
95 const common::Length& falseEasting,
96 const common::Length& falseNorthing);
97
98 PROJ_DLL static ConversionNNPtr
99 createEckertIII(const util::PropertyMap& properties,
100 const common::Angle& centerLong,
101 const common::Length& falseEasting,
102 const common::Length& falseNorthing);
103
104 PROJ_DLL static ConversionNNPtr
105 createEckertIV(const util::PropertyMap& properties,
106 const common::Angle& centerLong,
107 const common::Length& falseEasting,
108 const common::Length& falseNorthing);
109
110 PROJ_DLL static ConversionNNPtr
111 createEckertV(const util::PropertyMap& properties,
112 const common::Angle& centerLong,
113 const common::Length& falseEasting,
114 const common::Length& falseNorthing);
115
116 PROJ_DLL static ConversionNNPtr
117 createEckertVI(const util::PropertyMap& properties,
118 const common::Angle& centerLong,
119 const common::Length& falseEasting,
120 const common::Length& falseNorthing);
121
122 PROJ_DLL static ConversionNNPtr
123 createEquidistantCylindrical(const util::PropertyMap& properties,
124 const common::Angle& latitudeFirstParallel,
125 const common::Angle& longitudeNatOrigin,
126 const common::Length& falseEasting,
127 const common::Length& falseNorthing);
128
129 PROJ_DLL static ConversionNNPtr createEquidistantCylindricalSpherical(
130 const util::PropertyMap& properties,
131 const common::Angle& latitudeFirstParallel,
132 const common::Angle& longitudeNatOrigin,
133 const common::Length& falseEasting,
134 const common::Length& falseNorthing);
135
136 PROJ_DLL static ConversionNNPtr
137 createGall(const util::PropertyMap& properties,
138 const common::Angle& centerLong,
139 const common::Length& falseEasting,
140 const common::Length& falseNorthing);
141
142 PROJ_DLL static ConversionNNPtr
143 createGoodeHomolosine(const util::PropertyMap& properties,
144 const common::Angle& centerLong,
145 const common::Length& falseEasting,
146 const common::Length& falseNorthing);
147
148 PROJ_DLL static ConversionNNPtr
149 createInterruptedGoodeHomolosine(const util::PropertyMap& properties,
150 const common::Angle& centerLong,
151 const common::Length& falseEasting,
152 const common::Length& falseNorthing);
153
154 PROJ_DLL static ConversionNNPtr createGeostationarySatelliteSweepX(
155 const util::PropertyMap& properties, const common::Angle& centerLong,
156 const common::Length& height, const common::Length& falseEasting,
157 const common::Length& falseNorthing);
158
159 PROJ_DLL static ConversionNNPtr createGeostationarySatelliteSweepY(
160 const util::PropertyMap& properties, const common::Angle& centerLong,
161 const common::Length& height, const common::Length& falseEasting,
162 const common::Length& falseNorthing);
163
164 PROJ_DLL static ConversionNNPtr createGnomonic(
165 const util::PropertyMap& properties, const common::Angle& centerLat,
166 const common::Angle& centerLong, const common::Length& falseEasting,
167 const common::Length& falseNorthing);
168
169 PROJ_DLL static ConversionNNPtr createHotineObliqueMercatorVariantA(
170 const util::PropertyMap& properties,
171 const common::Angle& latitudeProjectionCentre,
172 const common::Angle& longitudeProjectionCentre,
173 const common::Angle& azimuthInitialLine,
174 const common::Angle& angleFromRectifiedToSkrewGrid,
175 const common::Scale& scale, const common::Length& falseEasting,
176 const common::Length& falseNorthing);
177
178 PROJ_DLL static ConversionNNPtr createHotineObliqueMercatorVariantB(
179 const util::PropertyMap& properties,
180 const common::Angle& latitudeProjectionCentre,
181 const common::Angle& longitudeProjectionCentre,
182 const common::Angle& azimuthInitialLine,
183 const common::Angle& angleFromRectifiedToSkrewGrid,
184 const common::Scale& scale,
185 const common::Length& eastingProjectionCentre,
186 const common::Length& northingProjectionCentre);
187
188 PROJ_DLL static ConversionNNPtr
189 createHotineObliqueMercatorTwoPointNaturalOrigin(
190 const util::PropertyMap& properties,
191 const common::Angle& latitudeProjectionCentre,
192 const common::Angle& latitudePoint1,
193 const common::Angle& longitudePoint1,
194 const common::Angle& latitudePoint2,
195 const common::Angle& longitudePoint2, const common::Scale& scale,
196 const common::Length& eastingProjectionCentre,
197 const common::Length& northingProjectionCentre);
198
199 PROJ_DLL static ConversionNNPtr
200 createLabordeObliqueMercator(const util::PropertyMap& properties,
201 const common::Angle& latitudeProjectionCentre,
202 const common::Angle& longitudeProjectionCentre,
203 const common::Angle& azimuthInitialLine,
204 const common::Scale& scale,
205 const common::Length& falseEasting,
206 const common::Length& falseNorthing);
207
208 PROJ_DLL static ConversionNNPtr createInternationalMapWorldPolyconic(
209 const util::PropertyMap& properties, const common::Angle& centerLong,
210 const common::Angle& latitudeFirstParallel,
211 const common::Angle& latitudeSecondParallel,
212 const common::Length& falseEasting,
213 const common::Length& falseNorthing);
214
215 PROJ_DLL static ConversionNNPtr createKrovakNorthOriented(
216 const util::PropertyMap& properties,
217 const common::Angle& latitudeProjectionCentre,
218 const common::Angle& longitudeOfOrigin,
219 const common::Angle& colatitudeConeAxis,
220 const common::Angle& latitudePseudoStandardParallel,
221 const common::Scale& scaleFactorPseudoStandardParallel,
222 const common::Length& falseEasting,
223 const common::Length& falseNorthing);
224
225 PROJ_DLL static ConversionNNPtr
226 createKrovak(const util::PropertyMap& properties,
227 const common::Angle& latitudeProjectionCentre,
228 const common::Angle& longitudeOfOrigin,
229 const common::Angle& colatitudeConeAxis,
230 const common::Angle& latitudePseudoStandardParallel,
231 const common::Scale& scaleFactorPseudoStandardParallel,
232 const common::Length& falseEasting,
233 const common::Length& falseNorthing);
234
235 PROJ_DLL static ConversionNNPtr
236 createLambertAzimuthalEqualArea(const util::PropertyMap& properties,
237 const common::Angle& latitudeNatOrigin,
238 const common::Angle& longitudeNatOrigin,
239 const common::Length& falseEasting,
240 const common::Length& falseNorthing);
241
242 PROJ_DLL static ConversionNNPtr
243 createMillerCylindrical(const util::PropertyMap& properties,
244 const common::Angle& centerLong,
245 const common::Length& falseEasting,
246 const common::Length& falseNorthing);
247
248 PROJ_DLL static ConversionNNPtr createMercatorVariantA(
249 const util::PropertyMap& properties, const common::Angle& centerLat,
250 const common::Angle& centerLong, const common::Scale& scale,
251 const common::Length& falseEasting,
252 const common::Length& falseNorthing);
253
254 PROJ_DLL static ConversionNNPtr
255 createMercatorVariantB(const util::PropertyMap& properties,
256 const common::Angle& latitudeFirstParallel,
257 const common::Angle& centerLong,
258 const common::Length& falseEasting,
259 const common::Length& falseNorthing);
260
261 PROJ_DLL static ConversionNNPtr createPopularVisualisationPseudoMercator(
262 const util::PropertyMap& properties, const common::Angle& centerLat,
263 const common::Angle& centerLong, const common::Length& falseEasting,
264 const common::Length& falseNorthing);
265
266 PROJ_DLL static ConversionNNPtr
267 createMollweide(const util::PropertyMap& properties,
268 const common::Angle& centerLong,
269 const common::Length& falseEasting,
270 const common::Length& falseNorthing);
271
272 PROJ_DLL static ConversionNNPtr createNewZealandMappingGrid(
273 const util::PropertyMap& properties, const common::Angle& centerLat,
274 const common::Angle& centerLong, const common::Length& falseEasting,
275 const common::Length& falseNorthing);
276
277 PROJ_DLL static ConversionNNPtr createObliqueStereographic(
278 const util::PropertyMap& properties, const common::Angle& centerLat,
279 const common::Angle& centerLong, const common::Scale& scale,
280 const common::Length& falseEasting,
281 const common::Length& falseNorthing);
282
283 PROJ_DLL static ConversionNNPtr createOrthographic(
284 const util::PropertyMap& properties, const common::Angle& centerLat,
285 const common::Angle& centerLong, const common::Length& falseEasting,
286 const common::Length& falseNorthing);
287
288 PROJ_DLL static ConversionNNPtr createAmericanPolyconic(
289 const util::PropertyMap& properties, const common::Angle& centerLat,
290 const common::Angle& centerLong, const common::Length& falseEasting,
291 const common::Length& falseNorthing);
292
293 PROJ_DLL static ConversionNNPtr createPolarStereographicVariantA(
294 const util::PropertyMap& properties, const common::Angle& centerLat,
295 const common::Angle& centerLong, const common::Scale& scale,
296 const common::Length& falseEasting,
297 const common::Length& falseNorthing);
298
299 PROJ_DLL static ConversionNNPtr createPolarStereographicVariantB(
300 const util::PropertyMap& properties,
301 const common::Angle& latitudeStandardParallel,
302 const common::Angle& longitudeOfOrigin,
303 const common::Length& falseEasting,
304 const common::Length& falseNorthing);
305
306 PROJ_DLL static ConversionNNPtr
307 createRobinson(const util::PropertyMap& properties,
308 const common::Angle& centerLong,
309 const common::Length& falseEasting,
310 const common::Length& falseNorthing);
311
312 PROJ_DLL static ConversionNNPtr
313 createSinusoidal(const util::PropertyMap& properties,
314 const common::Angle& centerLong,
315 const common::Length& falseEasting,
316 const common::Length& falseNorthing);
317
318 PROJ_DLL static ConversionNNPtr createStereographic(
319 const util::PropertyMap& properties, const common::Angle& centerLat,
320 const common::Angle& centerLong, const common::Scale& scale,
321 const common::Length& falseEasting,
322 const common::Length& falseNorthing);
323
324 PROJ_DLL static ConversionNNPtr
325 createVanDerGrinten(const util::PropertyMap& properties,
326 const common::Angle& centerLong,
327 const common::Length& falseEasting,
328 const common::Length& falseNorthing);
329
330 PROJ_DLL static ConversionNNPtr
331 createWagnerI(const util::PropertyMap& properties,
332 const common::Angle& centerLong,
333 const common::Length& falseEasting,
334 const common::Length& falseNorthing);
335
336 PROJ_DLL static ConversionNNPtr
337 createWagnerII(const util::PropertyMap& properties,
338 const common::Angle& centerLong,
339 const common::Length& falseEasting,
340 const common::Length& falseNorthing);
341
342 PROJ_DLL static ConversionNNPtr
343 createWagnerIII(const util::PropertyMap& properties,
344 const common::Angle& latitudeTrueScale,
345 const common::Angle& centerLong,
346 const common::Length& falseEasting,
347 const common::Length& falseNorthing);
348
349 PROJ_DLL static ConversionNNPtr
350 createWagnerIV(const util::PropertyMap& properties,
351 const common::Angle& centerLong,
352 const common::Length& falseEasting,
353 const common::Length& falseNorthing);
354
355 PROJ_DLL static ConversionNNPtr
356 createWagnerV(const util::PropertyMap& properties,
357 const common::Angle& centerLong,
358 const common::Length& falseEasting,
359 const common::Length& falseNorthing);
360
361 PROJ_DLL static ConversionNNPtr
362 createWagnerVI(const util::PropertyMap& properties,
363 const common::Angle& centerLong,
364 const common::Length& falseEasting,
365 const common::Length& falseNorthing);
366
367 PROJ_DLL static ConversionNNPtr
368 createWagnerVII(const util::PropertyMap& properties,
369 const common::Angle& centerLong,
370 const common::Length& falseEasting,
371 const common::Length& falseNorthing);
372
373 PROJ_DLL static ConversionNNPtr createQuadrilateralizedSphericalCube(
374 const util::PropertyMap& properties, const common::Angle& centerLat,
375 const common::Angle& centerLong, const common::Length& falseEasting,
376 const common::Length& falseNorthing);
377
378 PROJ_DLL static ConversionNNPtr createSphericalCrossTrackHeight(
379 const util::PropertyMap& properties, const common::Angle& pegPointLat,
380 const common::Angle& pegPointLong, const common::Angle& pegPointHeading,
381 const common::Length& pegPointHeight);
382
383 PROJ_DLL static ConversionNNPtr
384 createEqualEarth(const util::PropertyMap& properties,
385 const common::Angle& centerLong,
386 const common::Length& falseEasting,
387 const common::Length& falseNorthing);
388
389 PROJ_DLL static ConversionNNPtr
390 createVerticalPerspective(const util::PropertyMap& properties,
391 const common::Angle& topoOriginLat,
392 const common::Angle& topoOriginLong,
393 const common::Length& topoOriginHeight,
394 const common::Length& viewPointHeight,
395 const common::Length& falseEasting,
396 const common::Length& falseNorthing);
397
398 PROJ_DLL static ConversionNNPtr createPoleRotationGRIBConvention(
399 const util::PropertyMap& properties,
400 const common::Angle& southPoleLatInUnrotatedCRS,
401 const common::Angle& southPoleLongInUnrotatedCRS,
402 const common::Angle& axisRotation);
403
404 PROJ_DLL static ConversionNNPtr
405 createChangeVerticalUnit(const util::PropertyMap& properties,
406 const common::Scale& factor);
407
408 PROJ_DLL static ConversionNNPtr
409 createHeightDepthReversal(const util::PropertyMap& properties);
410
411 PROJ_DLL static ConversionNNPtr createAxisOrderReversal(bool is3D);
412
413 PROJ_DLL static ConversionNNPtr
414 createGeographicGeocentric(const util::PropertyMap& properties);
415
416 PROJ_DLL ConversionPtr convertToOtherMethod(int targetEPSGCode) const;
417
418PROJ_PRIVATE:
419 //! @cond Doxygen_Suppress
420 PROJ_INTERNAL void
421 _exportToPROJString(io::PROJStringFormatter* formatter)
422 const override; // throw(FormattingException)
423
424 PROJ_INTERNAL void _exportToJSON(io::JSONFormatter* formatter)
425 const override; // throw(FormattingException)
426
427 PROJ_INTERNAL const char* getESRIMethodName() const;
428
429 PROJ_INTERNAL const char* getWKT1GDALMethodName() const;
430
431 PROJ_INTERNAL ConversionNNPtr shallowClone() const;
432
433 PROJ_INTERNAL ConversionNNPtr alterParametersLinearUnit(
434 const common::UnitOfMeasure& unit, bool convertToNewUnit) const;
435
436 PROJ_INTERNAL static ConversionNNPtr
437 createGeographicGeocentric(const crs::CRSNNPtr& sourceCRS,
438 const crs::CRSNNPtr& targetCRS);
439
440}
Definition ACIColor.h:37
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:120
double fltp08
Defines an alias representing an 8 byte floating-point number.
Definition BaseValues.hpp:181