29 #ifndef METADATA_HH_INCLUDED 30 #define METADATA_HH_INCLUDED 45 class IdentifiedObject;
67 PROJ_DLL
explicit Citation(
const std::string &titleIn);
70 PROJ_DLL Citation(
const Citation &other);
77 PROJ_FRIEND_OPTIONAL(Citation);
78 Citation &operator=(
const Citation &other);
81 PROJ_OPAQUE_PRIVATE_DATA
110 util::IComparable::Criterion::STRICT)
const override = 0;
113 PROJ_DLL
virtual bool 117 PROJ_DLL
virtual bool 128 PROJ_OPAQUE_PRIVATE_DATA
154 PROJ_DLL
double westBoundLongitude() PROJ_CONST_DECL;
155 PROJ_DLL
double southBoundLatitude() PROJ_CONST_DECL;
156 PROJ_DLL
double eastBoundLongitude() PROJ_CONST_DECL;
157 PROJ_DLL
double northBoundLatitude() PROJ_CONST_DECL;
160 create(
double west,
double south,
double east,
double north);
165 util::IComparable::Criterion::STRICT)
const override;
179 PROJ_OPAQUE_PRIVATE_DATA
202 PROJ_DLL
const std::string &start() PROJ_CONST_DECL;
203 PROJ_DLL
const std::string &stop() PROJ_CONST_DECL;
206 const std::string &stop);
211 util::IComparable::Criterion::STRICT)
const override;
218 TemporalExtent(
const std::string &start,
const std::string &stop);
222 PROJ_OPAQUE_PRIVATE_DATA
245 PROJ_DLL
double minimumValue() PROJ_CONST_DECL;
246 PROJ_DLL
double maximumValue() PROJ_CONST_DECL;
250 create(
double minimumValue,
double maximumValue,
256 util::IComparable::Criterion::STRICT)
const override;
268 PROJ_OPAQUE_PRIVATE_DATA
275 using ExtentPtr = std::shared_ptr<Extent>;
289 PROJ_DLL ~Extent()
override;
293 PROJ_DLL
const std::vector<GeographicExtentNNPtr> &
294 geographicElements() PROJ_CONST_DECL;
295 PROJ_DLL
const std::vector<TemporalExtentNNPtr> &
296 temporalElements() PROJ_CONST_DECL;
297 PROJ_DLL
const std::vector<VerticalExtentNNPtr> &
298 verticalElements() PROJ_CONST_DECL;
302 const std::vector<GeographicExtentNNPtr> &geographicElementsIn,
303 const std::vector<VerticalExtentNNPtr> &verticalElementsIn,
304 const std::vector<TemporalExtentNNPtr> &temporalElementsIn);
307 createFromBBOX(
double west,
double south,
double east,
double north,
314 util::IComparable::Criterion::STRICT)
const override;
316 PROJ_DLL
bool contains(
const ExtentNNPtr &other)
const;
318 PROJ_DLL
bool intersects(
const ExtentNNPtr &other)
const;
329 PROJ_OPAQUE_PRIVATE_DATA
330 Extent &operator=(
const Extent &other) =
delete;
350 PROJ_DLL ~Identifier()
override;
354 create(
const std::string &codeIn = std::string(),
365 PROJ_DLL
static const std::string
EPSG;
366 PROJ_DLL
static const std::string
OGC;
369 PROJ_DLL const std::
string &code() PROJ_CONST_DECL;
370 PROJ_DLL const util::optional<std::
string> &codeSpace() PROJ_CONST_DECL;
371 PROJ_DLL const util::optional<std::
string> &version() PROJ_CONST_DECL;
372 PROJ_DLL const util::optional<std::
string> &description() PROJ_CONST_DECL;
373 PROJ_DLL const util::optional<std::
string> &uri() PROJ_CONST_DECL;
375 PROJ_DLL static
bool isEquivalentName(const
char *a, const std::
string &b);
377 PROJ_DLL static
bool isEquivalentName(const std::
string &a,
378 const std::
string &b);
383 canonicalizeName(const std::
string &str);
385 void _exportToWKT(io::WKTFormatter *formatter)
391 explicit Identifier(const std::
string &codeIn,
392 const util::PropertyMap &properties);
394 PROJ_FRIEND_OPTIONAL(Identifier);
396 Identifier &operator=(const Identifier &other) = delete;
398 PROJ_FRIEND(common::IdentifiedObject);
401 PROJ_OPAQUE_PRIVATE_DATA
418 class PositionalAccuracy : public util::BaseObject {
421 PROJ_DLL ~PositionalAccuracy()
override;
424 PROJ_DLL
const std::string &value() PROJ_CONST_DECL;
429 explicit PositionalAccuracy(
const std::string &valueIn);
433 PROJ_OPAQUE_PRIVATE_DATA
434 PositionalAccuracy(
const PositionalAccuracy &other) =
delete;
435 PositionalAccuracy &operator=(
const PositionalAccuracy &other) =
delete;
442 #endif // METADATA_HH_INCLUDED util::nn< UnitOfMeasurePtr > UnitOfMeasureNNPtr
Definition: common.hpp:54
Interface for an object that can be compared to another.
Definition: util.hpp:292
Criterion
Comparison criterion.
Definition: util.hpp:299
std::shared_ptr< UnitOfMeasure > UnitOfMeasurePtr
Definition: common.hpp:52
Wrapper of a std::map<std::string, BaseObjectNNPtr>
Definition: util.hpp:410
Class that can be derived from, to emulate Java's Object behaviour.
Definition: util.hpp:268
Interface for an object that can be exported to WKT.
Definition: io.hpp:423
Loose transposition of std::optional available from C++17.
Definition: util.hpp:178