|
QGIS API Documentation
master-6227475
|
This is the base class for vector data providers. More...
#include <qgsvectordataprovider.h>
Inheritance diagram for QgsVectorDataProvider:
Collaboration diagram for QgsVectorDataProvider:Classes | |
| struct | NativeType |
Public Types | |
| enum | Capability { NoCapabilities = 0, AddFeatures = 1, DeleteFeatures = 1 << 1, ChangeAttributeValues = 1 << 2, AddAttributes = 1 << 3, DeleteAttributes = 1 << 4, SaveAsShapefile = 1 << 5, CreateSpatialIndex = 1 << 6, SelectAtId = 1 << 7, ChangeGeometries = 1 << 8, SelectGeometryAtId = 1 << 9, RandomSelectGeometryAtId = 1 << 10, SequentialSelectGeometryAtId = 1 << 11, CreateAttributeIndex = 1 << 12, SelectEncoding = 1 << 13 } |
| enumeration with capabilities that providers might implement More... | |
Public Member Functions | |
| QgsVectorDataProvider (QString uri=QString()) | |
| Constructor of the vector provider. | |
| virtual | ~QgsVectorDataProvider () |
| Destructor. | |
| virtual bool | addAttributes (const QList< QgsField > &attributes) |
| Adds new attributes. | |
| virtual bool | addFeatures (QgsFeatureList &flist) |
| Adds a list of features. | |
| virtual QgsAttributeList | attributeIndexes () |
| Return list of indexes to fetch all attributes in nextFeature() | |
| virtual int | capabilities () const |
| Returns a bitmask containing the supported capabilities Note, some capabilities may change depending on whether a spatial filter is active on this provider, so it may be prudent to check this value per intended operation. | |
| QString | capabilitiesString () const |
| Returns the above in friendly format. | |
| virtual bool | changeAttributeValues (const QgsChangedAttributesMap &attr_map) |
| Changes attribute values of existing features. | |
| virtual bool | changeGeometryValues (QgsGeometryMap &geometry_map) |
| Changes geometries of existing features. | |
| void | clearErrors () |
| virtual bool | createAttributeIndex (int field) |
| Create an attribute index on the datasource. | |
| virtual bool | createSpatialIndex () |
| Creates a spatial index on the datasource (if supported by the provider type). | |
| virtual QString | dataComment () const |
| Return a short comment for the data that this provider is providing access to (e.g. | |
| virtual QVariant | defaultValue (int fieldId) |
Returns the default value for field specified by fieldId. | |
| virtual bool | deleteAttributes (const QgsAttributeIds &attributes) |
| Deletes existing attributes. | |
| virtual bool | deleteFeatures (const QgsFeatureIds &id) |
| Deletes one or more features. | |
| virtual bool | doesStrictFeatureTypeCheck () const |
| Returns true if the provider is strict about the type of inserted features (e.g. | |
| QString | encoding () const |
| Get encoding which is used for accessing data. | |
| virtual void | enumValues (int index, QStringList &enumList) |
| Returns the possible enum values of an attribute. | |
| QStringList | errors () |
| virtual long | featureCount () const =0 |
| Number of features in the layer. | |
| int | fieldNameIndex (const QString &fieldName) const |
| Returns the index of a field name or -1 if the field does not exist. | |
| QMap< QString, int > | fieldNameMap () const |
| Return a map where the key is the name of the field and the value is its index. | |
| virtual const QgsFields & | fields () const =0 |
| Return a map of indexes with field names for this layer. | |
| virtual QGis::WkbType | geometryType () const =0 |
| Get feature type. | |
| virtual QgsFeatureIterator | getFeatures (const QgsFeatureRequest &request=QgsFeatureRequest())=0 |
| Query the provider for features specified in request. | |
| bool | hasErrors () |
| virtual bool | isSaveAndLoadStyleToDBSupported () |
| It returns false by default. | |
| virtual QVariant | maximumValue (int index) |
| Returns the maximum value of an attribute. | |
| virtual QVariant | minimumValue (int index) |
| Returns the minimum value of an attribute. | |
| const QList< NativeType > & | nativeTypes () const |
| Returns the names of the supported types. | |
| virtual QgsAttrPalIndexNameHash | palAttributeIndexNames () const |
| Return list of indexes to names for QgsPalLabeling fix. | |
| virtual QgsAttributeList | pkAttributeIndexes () |
| Return list of indexes of fields that make up the primary key. | |
| virtual void | setEncoding (const QString &e) |
| Set encoding used for accessing data from layer. | |
| virtual QString | storageType () const |
| Returns the permanent storage type for this layer as a friendly name. | |
| bool | supportedType (const QgsField &field) const |
| check if provider supports type of field | |
| virtual void | uniqueValues (int index, QList< QVariant > &uniqueValues, int limit=-1) |
| Return unique values of an attribute. | |
Static Public Member Functions | |
| static const QStringList & | availableEncodings () |
| Returns a list of available encodings. | |
Static Public Attributes | |
| static const int | EditingCapabilities |
| bitmask of all provider's editing capabilities | |
Protected Member Functions | |
| void | clearMinMaxCache () |
| QVariant | convertValue (QVariant::Type type, QString value) |
| void | fillMinMaxCache () |
| void | pushError (QString msg) |
Protected Attributes | |
| QgsAttributeList | mAttributesToFetch |
| List of attribute indices to fetch with nextFeature calls. | |
| QgsAttrPalIndexNameHash | mAttrPalIndexName |
| Old-style mapping of index to name for QgsPalLabeling fix. | |
| QMap< int, QVariant > | mCacheMaxValues |
| bool | mCacheMinMaxDirty |
| QMap< int, QVariant > | mCacheMinValues |
| QTextCodec * | mEncoding |
| Encoding. | |
| bool | mFetchFeaturesWithoutGeom |
| should provider fetch also features that don't have geometry? | |
| bool | mFetchGeom |
| True if geometry should be added to the features in nextFeature calls. | |
| QList< NativeType > | mNativeTypes |
| The names of the providers native types. | |
Private Attributes | |
| QStringList | mErrors |
| QMap< QString, QVariant::Type > | mOldTypeList |
| old notation | |
Static Private Attributes | |
| static QStringList | smEncodings |
This is the base class for vector data providers.
Data providers abstract the retrieval and writing (where supported) of feature and attribute information from a spatial datasource.
Definition at line 48 of file qgsvectordataprovider.h.
enumeration with capabilities that providers might implement
Definition at line 58 of file qgsvectordataprovider.h.
| QgsVectorDataProvider::QgsVectorDataProvider | ( | QString | uri = QString() | ) |
Constructor of the vector provider.
| uri | uniform resource locator (URI) for a dataset |
Definition at line 30 of file qgsvectordataprovider.cpp.
References setEncoding().
| QgsVectorDataProvider::~QgsVectorDataProvider | ( | ) | [virtual] |
Destructor.
Definition at line 40 of file qgsvectordataprovider.cpp.
| bool QgsVectorDataProvider::addAttributes | ( | const QList< QgsField > & | attributes | ) | [virtual] |
Adds new attributes.
| attributes | list of new attributes |
Definition at line 66 of file qgsvectordataprovider.cpp.
Referenced by QgsZonalStatistics::calculateStatistics(), QgsVectorLayerEditBuffer::commitChanges(), and QgsGeometryAnalyzer::eventLayer().
| bool QgsVectorDataProvider::addFeatures | ( | QgsFeatureList & | flist | ) | [virtual] |
Adds a list of features.
Definition at line 54 of file qgsvectordataprovider.cpp.
Referenced by QgsVectorLayerEditBuffer::commitChanges(), QgsGeometryAnalyzer::eventLayer(), and QgsVectorLayerImport::flushBuffer().
| QgsAttributeList QgsVectorDataProvider::attributeIndexes | ( | ) | [virtual] |
Return list of indexes to fetch all attributes in nextFeature()
Definition at line 229 of file qgsvectordataprovider.cpp.
References QgsFields::count(), and fields().
| const QStringList & QgsVectorDataProvider::availableEncodings | ( | ) | [static] |
Returns a list of available encodings.
Definition at line 406 of file qgsvectordataprovider.cpp.
References _compareEncodings(), and smEncodings.
Referenced by QgsEncodingFileDialog::QgsEncodingFileDialog().
| int QgsVectorDataProvider::capabilities | ( | ) | const [virtual] |
Returns a bitmask containing the supported capabilities Note, some capabilities may change depending on whether a spatial filter is active on this provider, so it may be prudent to check this value per intended operation.
Definition at line 107 of file qgsvectordataprovider.cpp.
References NoCapabilities.
Referenced by QgsVectorLayerEditBuffer::addAttribute(), QgsVectorLayerEditBuffer::addFeature(), QgsVectorLayerEditBuffer::addFeatures(), QgsVectorLayer::boundingBoxOfSelected(), capabilitiesString(), QgsVectorLayerEditBuffer::changeAttributeValue(), QgsVectorLayerEditBuffer::changeGeometry(), QgsVectorLayerEditBuffer::commitChanges(), QgsVectorLayerImport::createSpatialIndex(), QgsVectorLayerEditBuffer::deleteAttribute(), QgsVectorLayerEditBuffer::deleteFeature(), QgsVectorLayer::deleteSelectedFeatures(), QgsVectorLayerImport::QgsVectorLayerImport(), and QgsVectorLayer::startEditing().
| QString QgsVectorDataProvider::capabilitiesString | ( | ) | const |
Returns the above in friendly format.
Definition at line 142 of file qgsvectordataprovider.cpp.
References AddAttributes, AddFeatures, capabilities(), ChangeAttributeValues, ChangeGeometries, CreateSpatialIndex, DeleteAttributes, DeleteFeatures, QgsDebugMsg, SelectAtId, and tr.
Referenced by QgsVectorLayer::capabilitiesString().
| bool QgsVectorDataProvider::changeAttributeValues | ( | const QgsChangedAttributesMap & | attr_map | ) | [virtual] |
Changes attribute values of existing features.
| attr_map | a map containing changed attributes |
Definition at line 78 of file qgsvectordataprovider.cpp.
Referenced by QgsZonalStatistics::calculateStatistics(), and QgsVectorLayerEditBuffer::commitChanges().
| bool QgsVectorDataProvider::changeGeometryValues | ( | QgsGeometryMap & | geometry_map | ) | [virtual] |
Changes geometries of existing features.
| geometry_map | A QgsGeometryMap whose index contains the feature IDs that will have their geometries changed. The second map parameter being the new geometries themselves |
Definition at line 90 of file qgsvectordataprovider.cpp.
Referenced by QgsVectorLayerEditBuffer::commitChanges().
| void QgsVectorDataProvider::clearErrors | ( | ) |
Definition at line 469 of file qgsvectordataprovider.cpp.
References mErrors.
Referenced by QgsQueryBuilder::accept(), QgsVectorLayerEditBuffer::commitChanges(), QgsVectorLayerImport::flushBuffer(), and QgsQueryBuilder::test().
| void QgsVectorDataProvider::clearMinMaxCache | ( | ) | [protected] |
Definition at line 316 of file qgsvectordataprovider.cpp.
References mCacheMinMaxDirty.
| QVariant QgsVectorDataProvider::convertValue | ( | QVariant::Type | type, |
| QString | value | ||
| ) | [protected] |
Definition at line 391 of file qgsvectordataprovider.cpp.
| bool QgsVectorDataProvider::createAttributeIndex | ( | int | field | ) | [virtual] |
Create an attribute index on the datasource.
Definition at line 101 of file qgsvectordataprovider.cpp.
| bool QgsVectorDataProvider::createSpatialIndex | ( | ) | [virtual] |
Creates a spatial index on the datasource (if supported by the provider type).
Definition at line 96 of file qgsvectordataprovider.cpp.
Referenced by QgsVectorLayerImport::createSpatialIndex().
| QString QgsVectorDataProvider::dataComment | ( | ) | const [virtual] |
Return a short comment for the data that this provider is providing access to (e.g.
the comment for postgres table).
Definition at line 49 of file qgsvectordataprovider.cpp.
Referenced by QgsVectorLayer::dataComment().
| QVariant QgsVectorDataProvider::defaultValue | ( | int | fieldId | ) | [virtual] |
Returns the default value for field specified by fieldId.
Definition at line 84 of file qgsvectordataprovider.cpp.
Referenced by QgsVectorLayerEditUtils::splitFeatures().
| bool QgsVectorDataProvider::deleteAttributes | ( | const QgsAttributeIds & | attributes | ) | [virtual] |
Deletes existing attributes.
| attributes | a set containing indices of attributes |
Definition at line 72 of file qgsvectordataprovider.cpp.
Referenced by QgsVectorLayerEditBuffer::commitChanges().
| bool QgsVectorDataProvider::deleteFeatures | ( | const QgsFeatureIds & | id | ) | [virtual] |
Deletes one or more features.
| id | list containing feature ids to delete |
Definition at line 60 of file qgsvectordataprovider.cpp.
Referenced by QgsVectorLayerEditBuffer::commitChanges().
| virtual bool QgsVectorDataProvider::doesStrictFeatureTypeCheck | ( | ) | const [inline, virtual] |
Returns true if the provider is strict about the type of inserted features (e.g.
no multipolygon in a polygon layer)
Definition at line 311 of file qgsvectordataprovider.h.
| QString QgsVectorDataProvider::encoding | ( | ) | const |
Get encoding which is used for accessing data.
Definition at line 132 of file qgsvectordataprovider.cpp.
References mEncoding.
Referenced by QgsGeometryAnalyzer::buffer(), QgsGeometryAnalyzer::centroids(), QgsGeometryAnalyzer::convexHull(), QgsGeometryAnalyzer::dissolve(), QgsGeometryAnalyzer::eventLayer(), QgsGeometryAnalyzer::extent(), QgsOverlayAnalyzer::intersection(), QgsGeometryAnalyzer::simplify(), and QgsVectorLayer::writeXml().
| virtual void QgsVectorDataProvider::enumValues | ( | int | index, |
| QStringList & | enumList | ||
| ) | [inline, virtual] |
Returns the possible enum values of an attribute.
Returns an empty stringlist if a provider does not support enum types or if the given attribute is not an enum type.
| index | the index of the attribute |
| enumList | reference to the list to fill |
Definition at line 176 of file qgsvectordataprovider.h.
Referenced by QgsAttributeEditor::createAttributeEditor().
| QStringList QgsVectorDataProvider::errors | ( | ) |
Definition at line 479 of file qgsvectordataprovider.cpp.
References mErrors.
Referenced by QgsQueryBuilder::accept(), QgsVectorLayerEditBuffer::commitChanges(), QgsVectorLayerImport::flushBuffer(), and QgsQueryBuilder::test().
| virtual long QgsVectorDataProvider::featureCount | ( | ) | const [pure virtual] |
Number of features in the layer.
Referenced by QgsZonalStatistics::calculateStatistics(), QgsVectorLayer::extent(), QgsVectorLayer::featureCount(), and QgsVectorLayer::pendingFeatureCount().
| int QgsVectorDataProvider::fieldNameIndex | ( | const QString & | fieldName | ) | const |
Returns the index of a field name or -1 if the field does not exist.
Definition at line 202 of file qgsvectordataprovider.cpp.
References QgsFields::count(), fields(), and QgsDataProvider::name().
Referenced by QgsZonalStatistics::calculateStatistics().
| QMap< QString, int > QgsVectorDataProvider::fieldNameMap | ( | ) | const |
Return a map where the key is the name of the field and the value is its index.
Definition at line 216 of file qgsvectordataprovider.cpp.
References QgsFields::count(), fields(), and QgsDataProvider::name().
Referenced by QgsVectorLayer::attributeEditorElementFromDomElement().
| virtual const QgsFields& QgsVectorDataProvider::fields | ( | ) | const [pure virtual] |
Return a map of indexes with field names for this layer.
Referenced by QgsVectorLayerEditBuffer::addFeature(), attributeIndexes(), QgsOfflineEditing::copyVectorLayer(), fieldNameIndex(), fieldNameMap(), fillMinMaxCache(), maximumValue(), minimumValue(), QgsPalLayerSettings::readDataDefinedProperty(), QgsVectorLayer::setDataProvider(), QgsFeatureListModel::setDisplayExpression(), QgsProjectFileTransform::transform0110to1000(), and QgsVectorLayer::updateFields().
| void QgsVectorDataProvider::fillMinMaxCache | ( | ) | [protected] |
Definition at line 321 of file qgsvectordataprovider.cpp.
References QgsFeature::attributes(), QgsFields::count(), fields(), getFeatures(), isNull(), mCacheMaxValues, mCacheMinMaxDirty, mCacheMinValues, and QgsFeatureIterator::nextFeature().
Referenced by maximumValue(), and minimumValue().
| virtual QGis::WkbType QgsVectorDataProvider::geometryType | ( | ) | const [pure virtual] |
Get feature type.
Referenced by QgsGeometryAnalyzer::dissolve(), QgsVectorLayer::geometryType(), QgsOverlayAnalyzer::intersection(), QgsVectorLayer::setDataProvider(), and QgsGeometryAnalyzer::simplify().
| virtual QgsFeatureIterator QgsVectorDataProvider::getFeatures | ( | const QgsFeatureRequest & | request = QgsFeatureRequest() | ) | [pure virtual] |
Query the provider for features specified in request.
Referenced by QgsZonalStatistics::calculateStatistics(), fillMinMaxCache(), QgsVectorLayerFeatureIterator::nextFeatureFid(), QgsVectorLayerFeatureIterator::QgsVectorLayerFeatureIterator(), uniqueValues(), and QgsVectorLayerFeatureIterator::useChangedAttributeFeature().
| bool QgsVectorDataProvider::hasErrors | ( | ) |
Definition at line 474 of file qgsvectordataprovider.cpp.
References mErrors.
Referenced by QgsQueryBuilder::accept(), QgsVectorLayerEditBuffer::commitChanges(), and QgsQueryBuilder::test().
| virtual bool QgsVectorDataProvider::isSaveAndLoadStyleToDBSupported | ( | ) | [inline, virtual] |
It returns false by default.
Must be implemented by providers that support saving and loading styles to db returning true
Definition at line 336 of file qgsvectordataprovider.h.
| QVariant QgsVectorDataProvider::maximumValue | ( | int | index | ) | [virtual] |
Returns the maximum value of an attribute.
| index | the index of the attribute |
Default implementation walks all numeric attributes and caches minimal and maximal values. If provider has facilities to retrieve maximal value directly, override this function.
Definition at line 277 of file qgsvectordataprovider.cpp.
References fields(), fillMinMaxCache(), mCacheMaxValues, and QgsDebugMsg.
Referenced by QgsVectorLayer::maximumValue().
| QVariant QgsVectorDataProvider::minimumValue | ( | int | index | ) | [virtual] |
Returns the minimum value of an attribute.
| index | the index of the attribute |
Default implementation walks all numeric attributes and caches minimal and maximal values. If provider has facilities to retrieve minimal value directly, override this function.
Definition at line 261 of file qgsvectordataprovider.cpp.
References fields(), fillMinMaxCache(), mCacheMinValues, and QgsDebugMsg.
Referenced by QgsVectorLayer::minimumValue().
| const QList< QgsVectorDataProvider::NativeType > & QgsVectorDataProvider::nativeTypes | ( | ) | const |
Returns the names of the supported types.
Definition at line 240 of file qgsvectordataprovider.cpp.
References mNativeTypes.
Referenced by QgsOfflineEditing::applyAttributesAdded().
| virtual QgsAttrPalIndexNameHash QgsVectorDataProvider::palAttributeIndexNames | ( | ) | const [inline, virtual] |
Return list of indexes to names for QgsPalLabeling fix.
Definition at line 280 of file qgsvectordataprovider.h.
Referenced by QgsPalLayerSettings::readDataDefinedProperty().
| virtual QgsAttributeList QgsVectorDataProvider::pkAttributeIndexes | ( | ) | [inline, virtual] |
Return list of indexes of fields that make up the primary key.
Definition at line 275 of file qgsvectordataprovider.h.
Referenced by QgsVectorLayer::pendingPkAttributesList().
| void QgsVectorDataProvider::pushError | ( | QString | msg | ) | [protected] |
Definition at line 484 of file qgsvectordataprovider.cpp.
References mErrors.
| void QgsVectorDataProvider::setEncoding | ( | const QString & | e | ) | [virtual] |
Set encoding used for accessing data from layer.
Definition at line 113 of file qgsvectordataprovider.cpp.
References QgsMessageLog::logMessage(), mEncoding, and tr.
Referenced by QgsVectorDataProvider(), QgsVectorLayer::readXml(), and QgsVectorLayer::setProviderEncoding().
| QString QgsVectorDataProvider::storageType | ( | ) | const [virtual] |
Returns the permanent storage type for this layer as a friendly name.
Definition at line 44 of file qgsvectordataprovider.cpp.
Referenced by QgsVectorLayer::storageType().
| bool QgsVectorDataProvider::supportedType | ( | const QgsField & | field | ) | const |
check if provider supports type of field
Definition at line 245 of file qgsvectordataprovider.cpp.
References QgsField::length(), mNativeTypes, QgsField::precision(), and QgsField::type().
Referenced by QgsVectorLayerEditBuffer::addAttribute().
| void QgsVectorDataProvider::uniqueValues | ( | int | index, |
| QList< QVariant > & | uniqueValues, | ||
| int | limit = -1 |
||
| ) | [virtual] |
Return unique values of an attribute.
| index | the index of the attribute |
| uniqueValues | values reference to the list to fill |
| limit | maxmum number of the values to return (added in 1.4) |
Default implementation simply iterates the features
Definition at line 293 of file qgsvectordataprovider.cpp.
References QgsFeature::attribute(), getFeatures(), and QgsFeatureIterator::nextFeature().
Referenced by QgsAttributeEditor::createAttributeEditor(), and QgsVectorLayer::uniqueValues().
const int QgsVectorDataProvider::EditingCapabilities [static] |
AddFeatures | DeleteFeatures | ChangeAttributeValues | ChangeGeometries | AddAttributes | DeleteAttributes
bitmask of all provider's editing capabilities
Definition at line 92 of file qgsvectordataprovider.h.
Referenced by QgsVectorLayer::startEditing().
List of attribute indices to fetch with nextFeature calls.
Definition at line 357 of file qgsvectordataprovider.h.
Old-style mapping of index to name for QgsPalLabeling fix.
Definition at line 365 of file qgsvectordataprovider.h.
QMap<int, QVariant> QgsVectorDataProvider::mCacheMaxValues [protected] |
Definition at line 345 of file qgsvectordataprovider.h.
Referenced by fillMinMaxCache(), and maximumValue().
bool QgsVectorDataProvider::mCacheMinMaxDirty [protected] |
Definition at line 344 of file qgsvectordataprovider.h.
Referenced by clearMinMaxCache(), and fillMinMaxCache().
QMap<int, QVariant> QgsVectorDataProvider::mCacheMinValues [protected] |
Definition at line 345 of file qgsvectordataprovider.h.
Referenced by fillMinMaxCache(), and minimumValue().
QTextCodec* QgsVectorDataProvider::mEncoding [protected] |
Encoding.
Definition at line 348 of file qgsvectordataprovider.h.
Referenced by encoding(), and setEncoding().
QStringList QgsVectorDataProvider::mErrors [private] |
Definition at line 372 of file qgsvectordataprovider.h.
Referenced by clearErrors(), errors(), hasErrors(), and pushError().
bool QgsVectorDataProvider::mFetchFeaturesWithoutGeom [protected] |
should provider fetch also features that don't have geometry?
Definition at line 351 of file qgsvectordataprovider.h.
bool QgsVectorDataProvider::mFetchGeom [protected] |
True if geometry should be added to the features in nextFeature calls.
Definition at line 354 of file qgsvectordataprovider.h.
QList< NativeType > QgsVectorDataProvider::mNativeTypes [protected] |
The names of the providers native types.
Definition at line 360 of file qgsvectordataprovider.h.
Referenced by nativeTypes(), and supportedType().
QMap<QString, QVariant::Type> QgsVectorDataProvider::mOldTypeList [private] |
old notation
Definition at line 369 of file qgsvectordataprovider.h.
QStringList QgsVectorDataProvider::smEncodings [static, private] |
Definition at line 374 of file qgsvectordataprovider.h.
Referenced by availableEncodings().