QGIS API Documentation
3.0.2-Girona (307d082)
|
A structured metadata store for a map layer. More...
#include <qgslayermetadata.h>
Classes | |
struct | Address |
Metadata address structure. More... | |
struct | Constraint |
Metadata constraint structure. More... | |
struct | Contact |
Metadata contact structure. More... | |
struct | Extent |
Metadata extent structure. More... | |
struct | Link |
Metadata link structure. More... | |
struct | SpatialExtent |
Metadata spatial extent structure. More... | |
Public Types | |
typedef QList< QgsLayerMetadata::Constraint > | ConstraintList |
A list of constraints. More... | |
typedef QList< QgsLayerMetadata::Contact > | ContactList |
A list of contacts. More... | |
typedef QMap< QString, QStringList > | KeywordMap |
Map of vocabulary string to keyword list. More... | |
typedef QList< QgsLayerMetadata::Link > | LinkList |
A list of links. More... | |
Public Member Functions | |
QgsLayerMetadata ()=default | |
Constructor for QgsLayerMetadata. More... | |
virtual | ~QgsLayerMetadata ()=default |
QString | abstract () const |
Returns a free-form description of the resource. More... | |
void | addConstraint (const QgsLayerMetadata::Constraint &constraint) |
Adds an individual constraint to the existing constraints. More... | |
void | addContact (const QgsLayerMetadata::Contact &contact) |
Adds an individual contact to the existing contacts. More... | |
void | addHistoryItem (const QString &text) |
Adds a single history text to the end of the existing history list. More... | |
void | addKeywords (const QString &vocabulary, const QStringList &keywords) |
Adds a list of descriptive keywords for a specified vocabulary. More... | |
void | addLink (const QgsLayerMetadata::Link &link) |
Adds an individual link to the existing links. More... | |
QStringList | categories () const |
Returns categories of the resource. More... | |
QgsLayerMetadata::ConstraintList | constraints () const |
Returns a list of constraints associated with using the resource. More... | |
QgsLayerMetadata::ContactList | contacts () const |
Returns a list of contact persons or entities associated with the resource. More... | |
QgsCoordinateReferenceSystem | crs () const |
Returns the coordinate reference system described by the layer's metadata. More... | |
QString | encoding () const |
Returns the character encoding of the data in the resource. More... | |
const QgsLayerMetadata::Extent & | extent () const |
Returns the spatial and temporal extents associated with the resource. More... | |
QgsLayerMetadata::Extent & | extent () |
Returns the spatial and temporal extents associated with the resource. More... | |
QString | fees () const |
Returns any fees associated with using the resource. More... | |
QStringList | history () const |
Returns a freeform description of the history or lineage of the resource. More... | |
QString | identifier () const |
A reference, URI, URL or some other mechanism to identify the resource. More... | |
KeywordMap | keywords () const |
Returns the keywords map, which is a set of descriptive keywords associated with the resource. More... | |
QStringList | keywords (const QString &vocabulary) const |
Returns a list of keywords for the specified vocabulary. More... | |
QStringList | keywordVocabularies () const |
Returns a list of keyword vocabularies contained in the metadata. More... | |
QString | language () const |
Returns the human language associated with the resource. More... | |
QStringList | licenses () const |
Returns a list of licenses associated with the resource (examples: http://opendefinition.org/licenses/). More... | |
QgsLayerMetadata::LinkList | links () const |
Returns a list of online resources associated with the resource. More... | |
bool | operator== (const QgsLayerMetadata &metadataOther) const |
QString | parentIdentifier () const |
A reference, URI, URL or some other mechanism to identify the parent resource that this resource is a part (child) of. More... | |
void | readFromLayer (const QgsMapLayer *layer) |
Reads the metadata state from a layer's custom properties (see QgsMapLayer::customProperty() ). More... | |
bool | readMetadataXml (const QDomElement &metadataElement) |
Sets state from Dom document. More... | |
bool | removeKeywords (const QString &vocabulary) |
Remove a vocabulary from the list. More... | |
QStringList | rights () const |
Returns a list of attribution or copyright strings associated with the resource. More... | |
void | saveToLayer (QgsMapLayer *layer) const |
Saves the metadata to a layer's custom properties (see QgsMapLayer::setCustomProperty() ). More... | |
void | setAbstract (const QString &abstract) |
Sets a free-form abstract (description) of the resource. More... | |
void | setCategories (const QStringList &categories) |
Sets categories of the resource. More... | |
void | setConstraints (const QgsLayerMetadata::ConstraintList &constraints) |
Sets the list of constraints associated with using the resource. More... | |
void | setContacts (const QgsLayerMetadata::ContactList &contacts) |
Sets the list of contacts or entities associated with the resource. More... | |
void | setCrs (const QgsCoordinateReferenceSystem &crs) |
Sets the coordinate reference system for the layer's metadata. More... | |
void | setEncoding (const QString &encoding) |
Sets the character encoding of the data in the resource. More... | |
void | setExtent (const QgsLayerMetadata::Extent &extent) |
Sets the spatial and temporal extents associated with the resource. More... | |
void | setFees (const QString &fees) |
Sets the fees associated with using the resource. More... | |
void | setHistory (const QStringList &history) |
Sets the freeform description of the history or lineage of the resource. More... | |
void | setIdentifier (const QString &identifier) |
Sets the reference, URI, URL or some other mechanism to identify the resource. More... | |
void | setKeywords (const KeywordMap &keywords) |
Sets the keywords map, which is a set of descriptive keywords associated with the resource. More... | |
void | setLanguage (const QString &language) |
Sets the human language associated with the resource. More... | |
void | setLicenses (const QStringList &licenses) |
Sets a list of licenses associated with the resource. More... | |
void | setLinks (const QgsLayerMetadata::LinkList &links) |
Sets the list of online resources associated with the resource. More... | |
void | setParentIdentifier (const QString &parentIdentifier) |
Sets a reference, URI, URL or some other mechanism to identify the parent resource that this resource is a part (child) of. More... | |
void | setRights (const QStringList &rights) |
Sets a list of rights (attribution or copyright strings) associated with the resource. More... | |
void | setTitle (const QString &title) |
Sets the human readable title (name) of the resource, typically displayed in search results. More... | |
void | setType (const QString &type) |
Sets the type (nature) of the resource. More... | |
QString | title () const |
Returns the human readable name of the resource, typically displayed in search results. More... | |
QString | type () const |
Returns the nature of the resource. More... | |
bool | writeMetadataXml (QDomElement &metadataElement, QDomDocument &document) const |
Stores state in Dom node. More... | |
A structured metadata store for a map layer.
QgsLayerMetadata handles storage and management of the metadata for a QgsMapLayer. This class is an internal QGIS format with a common metadata structure, which allows for code to access the metadata properties for layers in a uniform way.
The metadata store is designed to be compatible with the Dublin Core metadata specifications, and will be expanded to allow compatibility with ISO specifications in future releases. However, the QGIS internal schema does not represent a superset of all existing metadata schemas and accordingly conversion from specific metadata formats to QgsLayerMetadata may result in a loss of information.
This class is designed to follow the specifications detailed in the schema definition available at resources/qgis-resource-metadata.xsd within the QGIS source code.
Metadata can be validated through the use of QgsLayerMetadataValidator subclasses. E.g. validating against the native QGIS metadata schema can be performed using QgsNativeMetadataValidator.
Definition at line 55 of file qgslayermetadata.h.
typedef QList< QgsLayerMetadata::Constraint > QgsLayerMetadata::ConstraintList |
A list of constraints.
Definition at line 169 of file qgslayermetadata.h.
typedef QList< QgsLayerMetadata::Contact > QgsLayerMetadata::ContactList |
A list of contacts.
Definition at line 285 of file qgslayermetadata.h.
typedef QMap< QString, QStringList > QgsLayerMetadata::KeywordMap |
Map of vocabulary string to keyword list.
Definition at line 62 of file qgslayermetadata.h.
typedef QList< QgsLayerMetadata::Link > QgsLayerMetadata::LinkList |
A list of links.
Definition at line 345 of file qgslayermetadata.h.
|
default |
Constructor for QgsLayerMetadata.
|
virtualdefault |
QString QgsLayerMetadata::abstract | ( | ) | const |
Returns a free-form description of the resource.
Definition at line 61 of file qgslayermetadata.cpp.
void QgsLayerMetadata::addConstraint | ( | const QgsLayerMetadata::Constraint & | constraint | ) |
Adds an individual constraint to the existing constraints.
Definition at line 81 of file qgslayermetadata.cpp.
void QgsLayerMetadata::addContact | ( | const QgsLayerMetadata::Contact & | contact | ) |
Adds an individual contact to the existing contacts.
Definition at line 208 of file qgslayermetadata.cpp.
void QgsLayerMetadata::addHistoryItem | ( | const QString & | text | ) |
Adds a single history text to the end of the existing history list.
Definition at line 126 of file qgslayermetadata.cpp.
void QgsLayerMetadata::addKeywords | ( | const QString & | vocabulary, |
const QStringList & | keywords | ||
) |
Adds a list of descriptive keywords for a specified vocabulary.
Any existing keywords for the same vocabulary will be replaced. Other vocabularies will not be affected.
The vocabulary string is a reference (URI/URL preferred) to a codelist or vocabulary associated with keyword list.
Definition at line 161 of file qgslayermetadata.cpp.
void QgsLayerMetadata::addLink | ( | const QgsLayerMetadata::Link & | link | ) |
Adds an individual link to the existing links.
Definition at line 223 of file qgslayermetadata.cpp.
QStringList QgsLayerMetadata::categories | ( | ) | const |
Returns categories of the resource.
Categories are stored using a special vocabulary 'gmd:topicCategory' in keywords.
Definition at line 181 of file qgslayermetadata.cpp.
QList< QgsLayerMetadata::Constraint > QgsLayerMetadata::constraints | ( | ) | const |
Returns a list of constraints associated with using the resource.
Definition at line 86 of file qgslayermetadata.cpp.
QList< QgsLayerMetadata::Contact > QgsLayerMetadata::contacts | ( | ) | const |
Returns a list of contact persons or entities associated with the resource.
Definition at line 198 of file qgslayermetadata.cpp.
QgsCoordinateReferenceSystem QgsLayerMetadata::crs | ( | ) | const |
Returns the coordinate reference system described by the layer's metadata.
Note that this has no link to QgsMapLayer::crs(). While in most cases these two systems are likely to be identical, it is possible to have a layer with a different CRS described by it's accompanying metadata versus the CRS which is actually used to display and manipulate the layer within QGIS. This may be the case when a layer has an incorrect CRS within its metadata and a user has manually overridden the layer's CRS within QGIS.
The CRS described here should either match the CRS from the layer QgsMapLayer::crs() or the CRS from the data provider.
This property should also match the CRS property used in the spatial extent.
Definition at line 141 of file qgslayermetadata.cpp.
QString QgsLayerMetadata::encoding | ( | ) | const |
Returns the character encoding of the data in the resource.
An empty string will be returned if no encoding is set.
Definition at line 131 of file qgslayermetadata.cpp.
const QgsLayerMetadata::Extent & QgsLayerMetadata::extent | ( | ) | const |
Returns the spatial and temporal extents associated with the resource.
Definition at line 736 of file qgslayermetadata.cpp.
QgsLayerMetadata::Extent & QgsLayerMetadata::extent | ( | ) |
Returns the spatial and temporal extents associated with the resource.
Definition at line 741 of file qgslayermetadata.cpp.
QString QgsLayerMetadata::fees | ( | ) | const |
Returns any fees associated with using the resource.
An empty string will be returned if no fees are set.
Definition at line 71 of file qgslayermetadata.cpp.
QStringList QgsLayerMetadata::history | ( | ) | const |
Returns a freeform description of the history or lineage of the resource.
Definition at line 116 of file qgslayermetadata.cpp.
QString QgsLayerMetadata::identifier | ( | ) | const |
A reference, URI, URL or some other mechanism to identify the resource.
Definition at line 21 of file qgslayermetadata.cpp.
QMap< QString, QStringList > QgsLayerMetadata::keywords | ( | ) | const |
Returns the keywords map, which is a set of descriptive keywords associated with the resource.
The map key is the vocabulary string and map value is a list of keywords for that vocabulary.
The vocabulary string is a reference (URI/URL preferred) to a codelist or vocabulary associated with keyword list.
Definition at line 151 of file qgslayermetadata.cpp.
QStringList QgsLayerMetadata::keywords | ( | const QString & | vocabulary | ) | const |
Returns a list of keywords for the specified vocabulary.
If the vocabulary is not contained in the metadata, an empty list will be returned.
The vocabulary string is a reference (URI/URL preferred) to a codelist or vocabulary associated with keyword list.
Definition at line 176 of file qgslayermetadata.cpp.
QStringList QgsLayerMetadata::keywordVocabularies | ( | ) | const |
Returns a list of keyword vocabularies contained in the metadata.
The vocabulary string is a reference (URI/URL preferred) to a codelist or vocabulary associated with keyword list.
Definition at line 171 of file qgslayermetadata.cpp.
QString QgsLayerMetadata::language | ( | ) | const |
Returns the human language associated with the resource.
Usually the returned string will follow either the ISO 639.2 or ISO 3166 specifications, e.g. 'ENG' or 'SPA', however this is not a hard requirement and the caller must account for non compliant values.
Definition at line 228 of file qgslayermetadata.cpp.
QStringList QgsLayerMetadata::licenses | ( | ) | const |
Returns a list of licenses associated with the resource (examples: http://opendefinition.org/licenses/).
Definition at line 106 of file qgslayermetadata.cpp.
QList< QgsLayerMetadata::Link > QgsLayerMetadata::links | ( | ) | const |
Returns a list of online resources associated with the resource.
Definition at line 213 of file qgslayermetadata.cpp.
bool QgsLayerMetadata::operator== | ( | const QgsLayerMetadata & | metadataOther | ) | const |
Definition at line 776 of file qgslayermetadata.cpp.
QString QgsLayerMetadata::parentIdentifier | ( | ) | const |
A reference, URI, URL or some other mechanism to identify the parent resource that this resource is a part (child) of.
Returns an empty string if no parent identifier is set.
Definition at line 31 of file qgslayermetadata.cpp.
void QgsLayerMetadata::readFromLayer | ( | const QgsMapLayer * | layer | ) |
Reads the metadata state from a layer's custom properties (see QgsMapLayer::customProperty() ).
Definition at line 259 of file qgslayermetadata.cpp.
bool QgsLayerMetadata::readMetadataXml | ( | const QDomElement & | metadataElement | ) |
Sets state from Dom document.
metadataElement | The Dom element corresponding to ``resourceMetadata'' tag |
Definition at line 281 of file qgslayermetadata.cpp.
bool QgsLayerMetadata::removeKeywords | ( | const QString & | vocabulary | ) |
Remove a vocabulary from the list.
Definition at line 166 of file qgslayermetadata.cpp.
QStringList QgsLayerMetadata::rights | ( | ) | const |
Returns a list of attribution or copyright strings associated with the resource.
Definition at line 96 of file qgslayermetadata.cpp.
void QgsLayerMetadata::saveToLayer | ( | QgsMapLayer * | layer | ) | const |
Saves the metadata to a layer's custom properties (see QgsMapLayer::setCustomProperty() ).
Definition at line 238 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setAbstract | ( | const QString & | abstract | ) |
Sets a free-form abstract (description) of the resource.
Definition at line 66 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setCategories | ( | const QStringList & | categories | ) |
Sets categories of the resource.
Categories are stored using a special vocabulary 'gmd:topicCategory' in keywords.
Definition at line 193 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setConstraints | ( | const QgsLayerMetadata::ConstraintList & | constraints | ) |
Sets the list of constraints associated with using the resource.
Definition at line 91 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setContacts | ( | const QgsLayerMetadata::ContactList & | contacts | ) |
Sets the list of contacts or entities associated with the resource.
Any existing contacts will be replaced.
Definition at line 203 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setCrs | ( | const QgsCoordinateReferenceSystem & | crs | ) |
Sets the coordinate reference system for the layer's metadata.
Note that this has no link to QgsMapLayer::setCrs(). Setting the layer's CRS via QgsMapLayer::setCrs() does not affect the layer's metadata CRS, and changing the CRS from the metadata will not change the layer's CRS or how it is projected within QGIS.
While ideally these two systems are likely to be identical, it is possible to have a layer with a different CRS described by it's accompanying metadata versus the CRS which is actually used to display and manipulate the layer within QGIS. This may be the case when a layer has an incorrect CRS within its metadata and a user has manually overridden the layer's CRS within QGIS.
The CRS described here should either match the CRS from the layer QgsMapLayer::crs() or the CRS from the data provider.
This property should also match the CRS property used in the spatial extent.
Definition at line 146 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setEncoding | ( | const QString & | encoding | ) |
Sets the character encoding of the data in the resource.
Use an empty string if no encoding is set.
Definition at line 136 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setExtent | ( | const QgsLayerMetadata::Extent & | extent | ) |
Sets the spatial and temporal extents associated with the resource.
Definition at line 746 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setFees | ( | const QString & | fees | ) |
Sets the fees associated with using the resource.
Use an empty string if no fees are set.
Definition at line 76 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setHistory | ( | const QStringList & | history | ) |
Sets the freeform description of the history or lineage of the resource.
Any existing history items will be overwritten.
Definition at line 121 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setIdentifier | ( | const QString & | identifier | ) |
Sets the reference, URI, URL or some other mechanism to identify the resource.
Definition at line 26 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setKeywords | ( | const KeywordMap & | keywords | ) |
Sets the keywords map, which is a set of descriptive keywords associated with the resource.
The map key is the vocabulary string and map value is a list of keywords for that vocabulary. Calling this replaces any existing keyword vocabularies.
The vocabulary string is a reference (URI/URL preferred) to a codelist or vocabulary associated with keyword list.
Definition at line 156 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setLanguage | ( | const QString & | language | ) |
Sets the human language associated with the resource.
While a formal vocabulary is not imposed, ideally values should be taken from the ISO 639.2 or ISO 3166 specifications, e.g. 'ENG' or 'SPA' (ISO 639.2) or 'EN-AU' (ISO 3166).
Definition at line 233 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setLicenses | ( | const QStringList & | licenses | ) |
Sets a list of licenses associated with the resource.
(examples: http://opendefinition.org/licenses/).
Definition at line 111 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setLinks | ( | const QgsLayerMetadata::LinkList & | links | ) |
Sets the list of online resources associated with the resource.
Any existing links will be replaced.
Definition at line 218 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setParentIdentifier | ( | const QString & | parentIdentifier | ) |
Sets a reference, URI, URL or some other mechanism to identify the parent resource that this resource is a part (child) of.
Set an empty string if no parent identifier is required.
Definition at line 36 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setRights | ( | const QStringList & | rights | ) |
Sets a list of rights (attribution or copyright strings) associated with the resource.
Definition at line 101 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setTitle | ( | const QString & | title | ) |
Sets the human readable title (name) of the resource, typically displayed in search results.
Definition at line 56 of file qgslayermetadata.cpp.
void QgsLayerMetadata::setType | ( | const QString & | type | ) |
Sets the type (nature) of the resource.
While a formal vocabulary is not imposed, it is advised to use the ISO 19115 MD_ScopeCode values. E.g. 'dataset' or 'series'.
Definition at line 46 of file qgslayermetadata.cpp.
QString QgsLayerMetadata::title | ( | ) | const |
Returns the human readable name of the resource, typically displayed in search results.
Definition at line 51 of file qgslayermetadata.cpp.
QString QgsLayerMetadata::type | ( | ) | const |
Returns the nature of the resource.
While a formal vocabulary is not imposed, it is advised to use the ISO 19115 MD_ScopeCode values. E.g. 'dataset' or 'series'.
Definition at line 41 of file qgslayermetadata.cpp.
bool QgsLayerMetadata::writeMetadataXml | ( | QDomElement & | metadataElement, |
QDomDocument & | document | ||
) | const |
Stores state in Dom node.
metadataElement | is a Dom element corresponding to ``resourceMetadata'' tag |
document | is a the dom document being written |
Definition at line 493 of file qgslayermetadata.cpp.