metadata namespace
-
namespace metadata
Common classes from ISO 19115 (Metadata) standard.
osgeo.proj.metadata namespace
Typedefs
-
using GeographicExtentPtr = std::shared_ptr<GeographicExtent>
Shared pointer of GeographicExtent.
-
using GeographicExtentNNPtr = util::nn<GeographicExtentPtr>
Non-null shared pointer of GeographicExtent.
-
using GeographicBoundingBoxPtr = std::shared_ptr<GeographicBoundingBox>
Shared pointer of GeographicBoundingBox.
-
using GeographicBoundingBoxNNPtr = util::nn<GeographicBoundingBoxPtr>
Non-null shared pointer of GeographicBoundingBox.
-
using TemporalExtentPtr = std::shared_ptr<TemporalExtent>
Shared pointer of TemporalExtent.
-
using TemporalExtentNNPtr = util::nn<TemporalExtentPtr>
Non-null shared pointer of TemporalExtent.
-
using VerticalExtentPtr = std::shared_ptr<VerticalExtent>
Shared pointer of VerticalExtent.
-
using VerticalExtentNNPtr = util::nn<VerticalExtentPtr>
Non-null shared pointer of VerticalExtent.
-
using IdentifierPtr = std::shared_ptr<Identifier>
Shared pointer of Identifier.
-
using IdentifierNNPtr = util::nn<IdentifierPtr>
Non-null shared pointer of Identifier.
-
using PositionalAccuracyPtr = std::shared_ptr<PositionalAccuracy>
Shared pointer of PositionalAccuracy.
-
using PositionalAccuracyNNPtr = util::nn<PositionalAccuracyPtr>
Non-null shared pointer of PositionalAccuracy.
-
class Citation : public osgeo::proj::util::BaseObject
- #include <metadata.hpp>
Standardized resource reference.
A citation contains a title.
-
class GeographicExtent : public osgeo::proj::util::BaseObject, public osgeo::proj::util::IComparable
- #include <metadata.hpp>
Base interface for geographic area of the dataset.
Remark
Simplified version of GeographicExtent from GeoAPI
Subclassed by osgeo::proj::metadata::GeographicBoundingBox
Public Functions
-
virtual bool contains(const GeographicExtentNNPtr &other) const = 0
Returns whether this extent contains the other one.
-
virtual bool intersects(const GeographicExtentNNPtr &other) const = 0
Returns whether this extent intersects the other one.
-
virtual GeographicExtentPtr intersection(const GeographicExtentNNPtr &other) const = 0
Returns the intersection of this extent with another one.
-
virtual bool contains(const GeographicExtentNNPtr &other) const = 0
-
class GeographicBoundingBox : public osgeo::proj::metadata::GeographicExtent
- #include <metadata.hpp>
Geographic position of the dataset.
This is only an approximate so specifying the coordinate reference system is unnecessary.
Remark
Implements GeographicBoundingBox from GeoAPI
Public Functions
-
double westBoundLongitude()
Returns the western-most coordinate of the limit of the dataset extent.
The unit is degrees.
If eastBoundLongitude < westBoundLongitude(), then the bounding box crosses the anti-meridian.
-
double southBoundLatitude()
Returns the southern-most coordinate of the limit of the dataset extent.
The unit is degrees.
-
double eastBoundLongitude()
Returns the eastern-most coordinate of the limit of the dataset extent.
The unit is degrees.
If eastBoundLongitude < westBoundLongitude(), then the bounding box crosses the anti-meridian.
-
double northBoundLatitude()
Returns the northern-most coordinate of the limit of the dataset extent.
The unit is degrees.
-
virtual bool contains(const GeographicExtentNNPtr &other) const override
Returns whether this extent contains the other one.
-
virtual bool intersects(const GeographicExtentNNPtr &other) const override
Returns whether this extent intersects the other one.
-
virtual GeographicExtentPtr intersection(const GeographicExtentNNPtr &other) const override
Returns the intersection of this extent with another one.
Public Static Functions
-
static GeographicBoundingBoxNNPtr create(double west, double south, double east, double north)
Instantiate a GeographicBoundingBox.
If east < west, then the bounding box crosses the anti-meridian.
- Parameters:
west -- Western-most coordinate of the limit of the dataset extent (in degrees).
south -- Southern-most coordinate of the limit of the dataset extent (in degrees).
east -- Eastern-most coordinate of the limit of the dataset extent (in degrees).
north -- Northern-most coordinate of the limit of the dataset extent (in degrees).
- Returns:
a new GeographicBoundingBox.
-
double westBoundLongitude()
-
class TemporalExtent : public osgeo::proj::util::BaseObject, public osgeo::proj::util::IComparable
- #include <metadata.hpp>
Time period covered by the content of the dataset.
Remark
Simplified version of TemporalExtent from GeoAPI
Public Functions
-
const std::string &start()
Returns the start of the temporal extent.
-
const std::string &stop()
Returns the end of the temporal extent.
-
bool contains(const TemporalExtentNNPtr &other) const
Returns whether this extent contains the other one.
-
bool intersects(const TemporalExtentNNPtr &other) const
Returns whether this extent intersects the other one.
Public Static Functions
-
static TemporalExtentNNPtr create(const std::string &start, const std::string &stop)
Instantiate a TemporalExtent.
- Parameters:
start -- start.
stop -- stop.
- Returns:
a new TemporalExtent.
-
const std::string &start()
-
class VerticalExtent : public osgeo::proj::util::BaseObject, public osgeo::proj::util::IComparable
- #include <metadata.hpp>
Vertical domain of dataset.
Remark
Simplified version of VerticalExtent from GeoAPI
Public Functions
-
double minimumValue()
Returns the minimum of the vertical extent.
-
double maximumValue()
Returns the maximum of the vertical extent.
-
common::UnitOfMeasureNNPtr &unit()
Returns the unit of the vertical extent.
-
bool contains(const VerticalExtentNNPtr &other) const
Returns whether this extent contains the other one.
-
bool intersects(const VerticalExtentNNPtr &other) const
Returns whether this extent intersects the other one.
Public Static Functions
-
static VerticalExtentNNPtr create(double minimumValue, double maximumValue, const common::UnitOfMeasureNNPtr &unitIn)
Instantiate a VerticalExtent.
- Parameters:
minimumIn -- minimum.
maximumIn -- maximum.
unitIn -- unit.
- Returns:
a new VerticalExtent.
-
double minimumValue()
-
class Extent : public osgeo::proj::util::BaseObject, public osgeo::proj::util::IComparable
- #include <metadata.hpp>
Information about spatial, vertical, and temporal extent.
Public Functions
-
const util::optional<std::string> &description()
Return a textual description of the extent.
- Returns:
the description, or empty.
-
const std::vector<GeographicExtentNNPtr> &geographicElements()
Return the geographic element(s) of the extent
- Returns:
the geographic element(s), or empty.
-
const std::vector<TemporalExtentNNPtr> &temporalElements()
Return the temporal element(s) of the extent
- Returns:
the temporal element(s), or empty.
-
const std::vector<VerticalExtentNNPtr> &verticalElements()
Return the vertical element(s) of the extent
- Returns:
the vertical element(s), or empty.
-
bool contains(const ExtentNNPtr &other) const
Returns whether this extent contains the other one.
Behavior only well specified if each sub-extent category as at most one element.
-
bool intersects(const ExtentNNPtr &other) const
Returns whether this extent intersects the other one.
Behavior only well specified if each sub-extent category as at most one element.
-
ExtentPtr intersection(const ExtentNNPtr &other) const
Returns the intersection of this extent with another one.
Behavior only well specified if there is one single GeographicExtent in each object. Returns nullptr otherwise.
Public Static Functions
-
static ExtentNNPtr create(const util::optional<std::string> &descriptionIn, const std::vector<GeographicExtentNNPtr> &geographicElementsIn, const std::vector<VerticalExtentNNPtr> &verticalElementsIn, const std::vector<TemporalExtentNNPtr> &temporalElementsIn)
Instantiate a Extent.
- Parameters:
descriptionIn -- Textual description, or empty.
geographicElementsIn -- Geographic element(s), or empty.
verticalElementsIn -- Vertical element(s), or empty.
temporalElementsIn -- Temporal element(s), or empty.
- Returns:
a new Extent.
-
static ExtentNNPtr createFromBBOX(double west, double south, double east, double north, const util::optional<std::string> &descriptionIn = util::optional<std::string>())
Instantiate a Extent from a bounding box.
- Parameters:
west -- Western-most coordinate of the limit of the dataset extent (in degrees).
south -- Southern-most coordinate of the limit of the dataset extent (in degrees).
east -- Eastern-most coordinate of the limit of the dataset extent (in degrees).
north -- Northern-most coordinate of the limit of the dataset extent (in degrees).
descriptionIn -- Textual description, or empty.
- Returns:
a new Extent.
Public Static Attributes
-
static const ExtentNNPtr WORLD
World extent.
-
const util::optional<std::string> &description()
-
class Identifier : public osgeo::proj::util::BaseObject, public osgeo::proj::io::IWKTExportable, public osgeo::proj::io::IJSONExportable
- #include <metadata.hpp>
Value uniquely identifying an object within a namespace.
Remark
Implements Identifier as described in ISO 19111:2019 but which originates from ISO 19115 (Metadata)
Public Functions
-
const util::optional<Citation> &authority()
Return a citation for the organization responsible for definition and maintenance of the code.
- Returns:
the citation for the authority, or empty.
-
const std::string &code()
Return the alphanumeric value identifying an instance in the codespace.
e.g. "4326" (for EPSG:4326 WGS 84 GeographicCRS)
- Returns:
the code.
-
const util::optional<std::string> &codeSpace()
Return the organization responsible for definition and maintenance of the code.
e.g "EPSG"
- Returns:
the authority codespace, or empty.
-
const util::optional<std::string> &version()
Return the version identifier for the namespace.
When appropriate, the edition is identified by the effective date, coded using ISO 8601 date format.
- Returns:
the version or empty.
Public Static Functions
-
static IdentifierNNPtr create(const std::string &codeIn = std::string(), const util::PropertyMap &properties = util::PropertyMap())
Instantiate a Identifier.
- Parameters:
codeIn -- Alphanumeric value identifying an instance in the codespace
properties -- See General properties. Generally, the Identifier::CODESPACE_KEY should be set.
- Returns:
a new Identifier.
-
static bool isEquivalentName(const char *a, const char *b) noexcept
Returns whether two names are considered equivalent.
Two names are equivalent by removing any space, underscore, dash, slash, { or } character from them, and comparing in a case insensitive way.
-
static bool isEquivalentName(const char *a, const char *b, bool biggerDifferencesAllowed) noexcept
Returns whether two names are considered equivalent.
Two names are equivalent by removing any space, underscore, dash, slash, { or } character from them, and comparing in a case insensitive way.
- Since
9.6
- Parameters:
a -- first string
b -- second string
biggerDifferencesAllowed -- if true, "height" and "zone" words are ignored, and "north" is shortened as "n" and "south" as "n".
Public Static Attributes
-
static const std::string AUTHORITY_KEY
Key to set the authority citation of a metadata::Identifier.
The value is to be provided as a string or a metadata::Citation.
-
static const std::string CODE_KEY
Key to set the code of a metadata::Identifier.
The value is to be provided as a integer or a string.
-
static const std::string CODESPACE_KEY
Key to set the organization responsible for definition and maintenance of the code of a metadata::Identifier.
The value is to be provided as a string.
-
static const std::string VERSION_KEY
Key to set the version identifier for the namespace of a metadata::Identifier.
The value is to be provided as a string.
-
static const std::string DESCRIPTION_KEY
Key to set the natural language description of the meaning of the code value of a metadata::Identifier.
The value is to be provided as a string.
-
static const std::string URI_KEY
Key to set the URI of a metadata::Identifier.
The value is to be provided as a string.
-
static const std::string EPSG
EPSG codespace.
-
static const std::string OGC
OGC codespace.
-
const util::optional<Citation> &authority()
-
class PositionalAccuracy : public osgeo::proj::util::BaseObject
- #include <metadata.hpp>
Accuracy of the position of features.
Remark
Simplified version of PositionalAccuracy from GeoAPI, which originates from ISO 19115 (Metadata)
Public Functions
-
const std::string &value()
Return the value of the positional accuracy.
Public Static Functions
-
static PositionalAccuracyNNPtr create(const std::string &valueIn)
Instantiate a PositionalAccuracy.
- Parameters:
valueIn -- positional accuracy value.
- Returns:
a new PositionalAccuracy.
-
const std::string &value()
-
using GeographicExtentPtr = std::shared_ptr<GeographicExtent>