29 #ifndef DATUM_HH_INCLUDED 30 #define DATUM_HH_INCLUDED 67 PROJ_DLL ~
Datum()
override;
79 util::IComparable::Criterion::STRICT)
const;
81 #ifdef DOXYGEN_ENABLED 82 std::string *anchorDefinition_;
83 Date *publicationDate_;
91 PROJ_OPAQUE_PRIVATE_DATA
126 PROJ_DLL
const std::vector<DatumNNPtr> &datums()
const;
128 positionalAccuracy()
const;
132 const std::vector<DatumNNPtr> &datumsIn,
141 #ifdef DOXYGEN_ENABLED 143 PositionalAccuracy positionalAccuracy_;
151 PROJ_OPAQUE_PRIVATE_DATA
198 util::IComparable::Criterion::STRICT)
const override;
207 static std::string getPROJStringWellKnownName(
const common::Angle &angle);
211 #ifdef DOXYGEN_ENABLED 212 Angle greenwichLongitude_;
219 PROJ_OPAQUE_PRIVATE_DATA
255 inverseFlattening() PROJ_CONST_DECL;
257 semiMinorAxis() PROJ_CONST_DECL;
258 PROJ_DLL
bool isSphere() PROJ_CONST_DECL;
261 semiMedianAxis() PROJ_CONST_DECL;
268 PROJ_DLL
const std::string &celestialBody() PROJ_CONST_DECL;
270 PROJ_DLL
static const std::string
EARTH;
275 const std::string &celestialBody = EARTH);
281 const std::string &celestialBody = EARTH);
287 const std::string &celestialBody = EARTH);
303 util::IComparable::Criterion::STRICT)
const override;
309 #ifdef DOXYGEN_ENABLED 318 const std::string &celestialBody);
322 const std::string &celestialBody);
326 const std::string &celestialBody);
337 PROJ_OPAQUE_PRIVATE_DATA
340 bool lookForProjWellKnownEllps(std::string &projEllpsName,
341 std::string &ellpsName)
const;
399 util::IComparable::Criterion::STRICT)
const override;
402 #ifdef DOXYGEN_ENABLED 416 PROJ_OPAQUE_PRIVATE_DATA
427 std::shared_ptr<DynamicGeodeticReferenceFrame>;
430 util::nn<DynamicGeodeticReferenceFramePtr>;
460 util::IComparable::Criterion::STRICT)
const override;
468 #ifdef DOXYGEN_ENABLED 469 Measure frameReferenceEpoch_;
480 PROJ_OPAQUE_PRIVATE_DATA
503 const std::string &nameIn = std::string());
548 util::IComparable::Criterion::STRICT)
const override;
551 #ifdef DOXYGEN_ENABLED 560 PROJ_OPAQUE_PRIVATE_DATA
568 std::shared_ptr<DynamicVerticalReferenceFrame>;
571 util::nn<DynamicVerticalReferenceFramePtr>;
601 util::IComparable::Criterion::STRICT)
const override;
609 #ifdef DOXYGEN_ENABLED 610 Measure frameReferenceEpoch_;
620 PROJ_OPAQUE_PRIVATE_DATA
647 PROJ_DLL
const std::string &calendar()
const;
660 const std::string &calendarIn);
665 util::IComparable::Criterion::STRICT)
const override;
669 const std::string &calendarIn);
673 PROJ_OPAQUE_PRIVATE_DATA
713 util::IComparable::Criterion::STRICT)
const override;
720 PROJ_OPAQUE_PRIVATE_DATA
757 util::IComparable::Criterion::STRICT)
const override;
764 PROJ_OPAQUE_PRIVATE_DATA
771 #endif // DATUM_HH_INCLUDED util::nn< EllipsoidPtr > EllipsoidNNPtr
Definition: datum.hpp:233
The specification of the method by which the vertical reference frame is realized.
Definition: datum.hpp:494
Interface for an object that can be compared to another.
Definition: util.hpp:292
std::shared_ptr< EngineeringDatum > EngineeringDatumPtr
Definition: datum.hpp:680
static const GeodeticReferenceFrameNNPtr EPSG_6267
The EPSG:6267 / "North_American_Datum_1927" GeodeticReferenceFrame.
Definition: datum.hpp:386
std::shared_ptr< GeodeticReferenceFrame > GeodeticReferenceFramePtr
Definition: datum.hpp:348
util::nn< DatumEnsemblePtr > DatumEnsembleNNPtr
Definition: datum.hpp:107
Abstract class to define an enumeration of values.
Definition: util.hpp:611
std::shared_ptr< VerticalReferenceFrame > VerticalReferenceFramePtr
Definition: datum.hpp:512
static const PrimeMeridianNNPtr PARIS
The Paris PrimeMeridian.
Definition: datum.hpp:188
The definition of the origin and orientation of an engineering coordinate reference system...
Definition: datum.hpp:693
static const std::string EARTH
Earth celestial body.
Definition: datum.hpp:270
util::nn< DynamicGeodeticReferenceFramePtr > DynamicGeodeticReferenceFrameNNPtr
Definition: datum.hpp:430
Numeric value associated with a UnitOfMeasure.
Definition: common.hpp:136
Usage of a CRS-related object.
Definition: common.hpp:399
std::shared_ptr< ParametricDatum > ParametricDatumPtr
Definition: datum.hpp:727
The origin meridian from which longitude values are determined.
Definition: datum.hpp:172
std::shared_ptr< Datum > DatumPtr
Definition: datum.hpp:97
The definition of the relationship of a temporal coordinate system to an object. The object is normal...
Definition: datum.hpp:640
Numeric value, with a linear unit of measure.
Definition: common.hpp:204
util::nn< DynamicVerticalReferenceFramePtr > DynamicVerticalReferenceFrameNNPtr
Definition: datum.hpp:571
Criterion
Comparison criterion.
Definition: util.hpp:299
static const EllipsoidNNPtr WGS84
The EPSG:7030 / "WGS 84" Ellipsoid.
Definition: datum.hpp:292
Date-time value, as a ISO:8601 encoded string, or other string encoding.
Definition: common.hpp:223
util::nn< PrimeMeridianPtr > PrimeMeridianNNPtr
Definition: datum.hpp:163
A textual description and/or a set of parameters identifying a particular reference level surface use...
Definition: datum.hpp:524
A vertical reference frame in which some of the defining parameters have time dependency.
Definition: datum.hpp:581
Textual description and/or a set of parameters identifying a particular reference surface used as the...
Definition: datum.hpp:737
util::nn< VerticalReferenceFramePtr > VerticalReferenceFrameNNPtr
Definition: datum.hpp:514
std::shared_ptr< PrimeMeridian > PrimeMeridianPtr
Definition: datum.hpp:161
static const GeodeticReferenceFrameNNPtr EPSG_6269
The EPSG:6269 / "North_American_Datum_1983" GeodeticReferenceFrame.
Definition: datum.hpp:388
util::nn< EngineeringDatumPtr > EngineeringDatumNNPtr
Definition: datum.hpp:682
A geometric figure that can be used to describe the approximate shape of an object.
Definition: datum.hpp:243
static const std::string CALENDAR_PROLEPTIC_GREGORIAN
The proleptic Gregorian calendar.
Definition: datum.hpp:654
Wrapper of a std::map<std::string, BaseObjectNNPtr>
Definition: util.hpp:410
A geodetic reference frame in which some of the parameters describe time evolution of defining statio...
Definition: datum.hpp:440
static const RealizationMethod TIDAL
The realization is through a tidal model or by tidal predictions.
Definition: datum.hpp:498
static const GeodeticReferenceFrameNNPtr EPSG_6326
The EPSG:6326 / "WGS_1984" GeodeticReferenceFrame.
Definition: datum.hpp:389
std::shared_ptr< TemporalDatum > TemporalDatumPtr
Definition: datum.hpp:631
static const RealizationMethod GEOID
The realization is through a geoid height model or a height correction model. This is applied to a sp...
Definition: datum.hpp:497
Numeric value, with a angular unit of measure.
Definition: common.hpp:186
std::shared_ptr< IdentifiedObject > IdentifiedObjectPtr
Definition: common.hpp:261
static const EllipsoidNNPtr CLARKE_1866
The EPSG:7008 / "Clarke 1866" Ellipsoid.
Definition: datum.hpp:291
Interface for an object that can be exported to a PROJ string.
Definition: io.hpp:451
Numeric value, without a physical unit of measure.
Definition: common.hpp:168
util::nn< ParametricDatumPtr > ParametricDatumNNPtr
Definition: datum.hpp:729
util::nn< GeodeticReferenceFramePtr > GeodeticReferenceFrameNNPtr
Definition: datum.hpp:350
std::shared_ptr< DynamicGeodeticReferenceFrame > DynamicGeodeticReferenceFramePtr
Definition: datum.hpp:427
std::shared_ptr< Ellipsoid > EllipsoidPtr
Definition: datum.hpp:231
std::shared_ptr< DynamicVerticalReferenceFrame > DynamicVerticalReferenceFramePtr
Definition: datum.hpp:568
util::nn< TemporalDatumPtr > TemporalDatumNNPtr
Definition: datum.hpp:633
Abstract class of the relationship of a coordinate system to an object, thus creating a coordinate re...
Definition: datum.hpp:64
static const EllipsoidNNPtr GRS1980
The EPSG:7019 / "GRS 1980" Ellipsoid.
Definition: datum.hpp:293
std::shared_ptr< DatumEnsemble > DatumEnsemblePtr
Definition: datum.hpp:105
Interface for an object that can be exported to WKT.
Definition: io.hpp:423
A collection of two or more geodetic or vertical reference frames (or if not geodetic or vertical ref...
Definition: datum.hpp:119
util::nn< DatumPtr > DatumNNPtr
Definition: datum.hpp:99
static const PrimeMeridianNNPtr GREENWICH
The Greenwich PrimeMeridian.
Definition: datum.hpp:187
Loose transposition of std::optional available from C++17.
Definition: util.hpp:178
The definition of the position, scale and orientation of a geocentric Cartesian 3D coordinate system ...
Definition: datum.hpp:367
static const RealizationMethod LEVELLING
The realization is by adjustment of a levelling network fixed to one or more tide gauges...
Definition: datum.hpp:496
Identifications of a CRS-related object.
Definition: common.hpp:269