General documentation
- page General documentation
General API design
The design of the class hierarchy is strongly derived from ISO 19111:2019.
Classes for which the constructors are not directly accessible have their instances constructed with create() methods. The returned object is a non-null shared pointer. Such objects are immutable, and thread-safe.
TODO
General properties
All classes deriving from IdentifiedObject have general properties that can be defined at creation time. Those properties are:
osgeo::proj::metadata::Identifier::DESCRIPTION_KEY ("description"): the natural language description of the meaning of the code value, provided a a string.
osgeo::proj::metadata::Identifier::CODE_KEY ("code"): a numeric or alphanumeric code, provided as a integer or a string. For example 4326, for the EPSG:4326 "WGS84" GeographicalCRS
osgeo::proj::metadata::Identifier::CODESPACE_KEY ("codespace"): the organization responsible for definition and maintenance of the code., provided a a string. For example "EPSG".
osgeo::proj::metadata::Identifier::VERSION_KEY ("version"): the version identifier for the namespace, provided a a string.
osgeo::proj::metadata::Identifier::AUTHORITY_KEY ("authority"): a citation for the authority, provided as a string or a osgeo::proj::metadata::Citation object. Often unused
osgeo::proj::metadata::Identifier::URI_KEY ("uri"): the URI of the identifier, provided as a string. Often unused
osgeo::proj::common::IdentifiedObject::NAME_KEY ("name"): the name of a osgeo::proj::common::IdentifiedObject, provided as a string or osgeo::proj::metadata::IdentifierNNPtr.
osgeo::proj::common::IdentifiedObject::IDENTIFIERS_KEY ("identifiers"): the identifier(s) of a osgeo::proj::common::IdentifiedObject, provided as a osgeo::proj::common::IdentifierNNPtr or a osgeo::proj::util::ArrayOfBaseObjectNNPtr of osgeo::proj::metadata::IdentifierNNPtr.
osgeo::proj::common::IdentifiedObject::ALIAS_KEY ("alias"): the alias(es) of a osgeo::proj::common::IdentifiedObject, provided as string, a osgeo::proj::util::GenericNameNNPtr or a osgeo::proj::util::ArrayOfBaseObjectNNPtr of osgeo::proj::util::GenericNameNNPtr.
osgeo::proj::common::IdentifiedObject::REMARKS_KEY ("remarks"): the remarks of a osgeo::proj::common::IdentifiedObject, provided as a string.
osgeo::proj::common::IdentifiedObject::DEPRECATED_KEY ("deprecated"): the deprecation flag of a osgeo::proj::common::IdentifiedObject, provided as a boolean.
osgeo::proj::common::ObjectUsage::SCOPE_KEY ("scope"): the scope of a osgeo::proj::common::ObjectUsage, provided as a string.
osgeo::proj::common::ObjectUsage::DOMAIN_OF_VALIDITY_KEY ("domainOfValidity"): the domain of validity of a osgeo::proj::common::ObjectUsage, provided as a osgeo::proj::metadata::ExtentNNPtr.
osgeo::proj::common::ObjectUsage::OBJECT_DOMAIN_KEY ("objectDomain"): the object domain(s) of a osgeo::proj::common::ObjectUsage, provided as a osgeo::proj::common::ObjectDomainNNPtr or a osgeo::proj::util::ArrayOfBaseObjectNNPtr of osgeo::proj::common::ObjectDomainNNPtr.
Applicable standards
ISO:19111 / OGC Topic 2 standard
Topic 2 - Spatial referencing by coordinates.
This is an Abstract Specification describes the data elements, relationships and associated metadata required for spatial referencing by coordinates. It describes Coordinate Reference Systems (CRS), coordinate systems (CS) and coordinate transformation or coordinate conversion between two different coordinate reference systems.
ISO 19111:2019
This is the revision mostly used for PROJ C++ modelling.
ISO 19111:2007
The precedent version of the specification was: OGC 08-015r2, 2010-04-27, ISO 19111:2007
WKT2 standard
Well-known text representation of coordinate reference systems.
Well-known Text (WKT) offers a compact machine- and human-readable representation of the critical elements of coordinate reference system (CRS) definitions, and coordinate operations. This is an implementation of ISO:19111 / OGC Topic 2 standard
PROJ implements the two following revisions of the standard:
WKT2:2019
WKT2:2015
WKT1 specification
Older specifications of well-known text representation of coordinate reference systems are also supported by PROJ, mostly for compatibility with legacy systems, or older versions of GDAL.
GDAL v2.4 and earlier mostly implements:
OGC 01-009, 2001-01-12, OpenGIS Coordinate Transformation Service Implementation Specification
The GDAL documentation, OGC WKT Coordinate System Issues discusses issues, and GDAL implementation choices.
An older specification of WKT1 is/was used by some software packages:
OGC 99-049, 1999-05-05, OpenGIS Simple Features Specification For SQL v1.1
ISO 19115 (Metadata)
Defines the schema required for describing geographic information and services. It provides information about the identification, the extent, the quality, the spatial and temporal schema, spatial reference, and distribution of digital geographic data.
PROJ implements a simplified subset of ISO 19115.
GeoAPI
A set of Java and Python language programming interfaces for geospatial applications.