QGIS API Documentation
2.6.0-Brighton
|
This is the base class for vector data providers. More...
#include <qgsvectordataprovider.h>
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, SimplifyGeometries = 1 << 14, SimplifyGeometriesWithTopologicalValidation = 1 << 15 } |
enumeration with capabilities that providers might implement More... | |
Public Types inherited from QgsDataProvider | |
enum | DataCapability { NoDataCapabilities = 0, File = 1, Dir = 1 << 1, Database = 1 << 2, Net = 1 << 3 } |
Public Member Functions | |
QgsVectorDataProvider (QString uri=QString()) | |
Constructor of the vector provider. | |
virtual | ~QgsVectorDataProvider () |
Destructor. | |
virtual QgsAbstractFeatureSource * | featureSource () const |
Return feature source object that can be used for querying provider's data. | |
virtual QString | storageType () const |
Returns the permanent storage type for this layer as a friendly name. | |
virtual QgsFeatureIterator | getFeatures (const QgsFeatureRequest &request=QgsFeatureRequest())=0 |
Query the provider for features specified in request. | |
virtual QGis::WkbType | geometryType () const =0 |
Get feature type. | |
virtual long | featureCount () const =0 |
Number of features in the layer. | |
virtual const QgsFields & | fields () const =0 |
Return a map of indexes with field names for this layer. | |
virtual QString | dataComment () const |
Return a short comment for the data that this provider is providing access to (e.g. | |
virtual QVariant | minimumValue (int index) |
Returns the minimum value of an attribute. | |
virtual QVariant | maximumValue (int index) |
Returns the maximum value of an attribute. | |
virtual void | uniqueValues (int index, QList< QVariant > &uniqueValues, int limit=-1) |
Return unique values of an attribute. | |
virtual void | enumValues (int index, QStringList &enumList) |
Returns the possible enum values of an attribute. | |
virtual bool | addFeatures (QgsFeatureList &flist) |
Adds a list of features. | |
virtual bool | deleteFeatures (const QgsFeatureIds &id) |
Deletes one or more features. | |
virtual bool | addAttributes (const QList< QgsField > &attributes) |
Adds new attributes. | |
virtual bool | deleteAttributes (const QgsAttributeIds &attributes) |
Deletes existing attributes. | |
virtual bool | changeAttributeValues (const QgsChangedAttributesMap &attr_map) |
Changes attribute values of existing features. | |
virtual QVariant | defaultValue (int fieldId) |
Returns the default value for field specified by fieldId . | |
virtual bool | changeGeometryValues (QgsGeometryMap &geometry_map) |
Changes geometries of existing features. | |
virtual bool | createSpatialIndex () |
Creates a spatial index on the datasource (if supported by the provider type). | |
virtual bool | createAttributeIndex (int field) |
Create an attribute index on the datasource. | |
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 void | setEncoding (const QString &e) |
Set encoding used for accessing data from layer. | |
QString | encoding () const |
Get encoding which is used for accessing data. | |
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 QgsAttributeList | attributeIndexes () |
Return list of indexes to fetch all attributes in nextFeature() | |
virtual QgsAttributeList | pkAttributeIndexes () |
Return list of indexes of fields that make up the primary key. | |
virtual QgsAttrPalIndexNameHash | palAttributeIndexNames () const |
Return list of indexes to names for QgsPalLabeling fix. | |
bool | supportedType (const QgsField &field) const |
check if provider supports type of field | |
const QList< NativeType > & | nativeTypes () const |
Returns the names of the supported types. | |
virtual bool | doesStrictFeatureTypeCheck () const |
Returns true if the provider is strict about the type of inserted features (e.g. | |
bool | hasErrors () |
Provider has errors to report. | |
void | clearErrors () |
Clear recorded errors. | |
QStringList | errors () |
Get recorded errors. | |
virtual bool | isSaveAndLoadStyleToDBSupported () |
It returns false by default. | |
Public Member Functions inherited from QgsDataProvider | |
QgsDataProvider (QString const &uri="") | |
virtual | ~QgsDataProvider () |
We need this so the subclass destructors get called. | |
virtual QgsCoordinateReferenceSystem | crs ()=0 |
virtual void | setDataSourceUri (const QString &uri) |
Set the data source specification. | |
virtual QString | dataSourceUri () const |
Get the data source specification. | |
virtual QgsRectangle | extent ()=0 |
Get the extent of the layer. | |
virtual bool | isValid ()=0 |
Returns true if this is a valid layer. | |
virtual void | updateExtents () |
Update the extents of the layer. | |
virtual bool | setSubsetString (QString subset, bool updateFeatureCount=true) |
Set the subset string used to create a subset of features in the layer. | |
virtual bool | supportsSubsetString () |
provider supports setting of subset strings | |
virtual QString | subsetString () |
Returns the subset definition string (typically sql) currently in use by the layer and used by the provider to limit the feature set. | |
virtual QStringList | subLayers () const |
Sub-layers handled by this provider, in order from bottom to top. | |
virtual QStringList | subLayerStyles () const |
Sub-layer styles for each sub-layer handled by this provider, in order from bottom to top. | |
virtual uint | subLayerCount () const |
return the number of layers for the current data source | |
virtual void | setLayerOrder (const QStringList &layers) |
Reorder the list of layer names to be rendered by this provider (in order from bottom to top) | |
virtual void | setSubLayerVisibility (const QString &name, bool vis) |
Set the visibility of the given sublayer name. | |
virtual QString | name () const =0 |
return a provider name | |
virtual QString | description () const =0 |
return description | |
virtual QString | fileVectorFilters () const |
return vector file filter string | |
virtual QString | fileRasterFilters () const |
return raster file filter string | |
virtual void | reloadData () |
Reloads the data from the source. | |
virtual QDateTime | timestamp () const |
Time stamp of data source in the moment when data/metadata were loaded by provider. | |
virtual QDateTime | dataTimestamp () const |
Current time stamp of data source. | |
virtual QgsError | error () const |
Get current status error. |
Static Public Member Functions | |
static const QStringList & | availableEncodings () |
Returns a list of available encodings. | |
static QVariant | convertValue (QVariant::Type type, QString value) |
Static Public Attributes | |
static const int | EditingCapabilities |
bitmask of all provider's editing capabilities |
Protected Member Functions | |
void | clearMinMaxCache () |
void | fillMinMaxCache () |
void | pushError (QString msg) |
Protected Member Functions inherited from QgsDataProvider | |
void | appendError (const QgsErrorMessage &theMessage) |
Add error message. | |
void | setError (const QgsError &theError) |
Set error message. |
Protected Attributes | |
bool | mCacheMinMaxDirty |
QMap< int, QVariant > | mCacheMinValues |
QMap< int, QVariant > | mCacheMaxValues |
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. | |
QgsAttributeList | mAttributesToFetch |
List of attribute indices to fetch with nextFeature calls. | |
QList< NativeType > | mNativeTypes |
The names of the providers native types. | |
QgsAttrPalIndexNameHash | mAttrPalIndexName |
Old-style mapping of index to name for QgsPalLabeling fix. | |
Protected Attributes inherited from QgsDataProvider | |
QDateTime | mTimestamp |
Timestamp of data in the moment when the data were loaded by provider. | |
QgsError | mError |
Error. |
Additional Inherited Members | |
Signals inherited from QgsDataProvider | |
void | fullExtentCalculated () |
This is emitted whenever the worker thread has fully calculated the PostGIS extents for this layer, and its event has been received by this provider. | |
void | dataChanged () |
This is emitted whenever an asynchronous operation has finished and the data should be redrawn. | |
void | dataChanged (int changed) |
This is emitted whenever data or metadata (e.g. |
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.
enumeration with capabilities that providers might implement
QgsVectorDataProvider::QgsVectorDataProvider | ( | QString | uri = QString() | ) |
Constructor of the vector provider.
uri | uniform resource locator (URI) for a dataset |
|
virtual |
Destructor.
|
virtual |
Adds new attributes.
attributes | list of new attributes |
|
virtual |
Adds a list of features.
|
virtual |
Return list of indexes to fetch all attributes in nextFeature()
|
static |
Returns a list of available encodings.
|
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.
QString QgsVectorDataProvider::capabilitiesString | ( | ) | const |
Returns the above in friendly format.
|
virtual |
Changes attribute values of existing features.
attr_map | a map containing changed attributes |
|
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 |
void QgsVectorDataProvider::clearErrors | ( | ) |
Clear recorded errors.
|
protected |
|
static |
|
virtual |
Create an attribute index on the datasource.
|
virtual |
Creates a spatial index on the datasource (if supported by the provider type).
|
virtual |
Return a short comment for the data that this provider is providing access to (e.g.
the comment for postgres table).
|
virtual |
Returns the default value for field specified by fieldId
.
|
virtual |
Deletes existing attributes.
attributes | a set containing indices of attributes |
|
virtual |
Deletes one or more features.
id | list containing feature ids to delete |
|
inlinevirtual |
Returns true if the provider is strict about the type of inserted features (e.g.
no multipolygon in a polygon layer)
QString QgsVectorDataProvider::encoding | ( | ) | const |
Get encoding which is used for accessing data.
|
inlinevirtual |
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 |
QStringList QgsVectorDataProvider::errors | ( | ) |
Get recorded errors.
|
pure virtual |
Number of features in the layer.
|
inlinevirtual |
Return feature source object that can be used for querying provider's data.
The returned feature source is independent from provider - any changes to provider's state (e.g. change of subset string) will not be reflected in the feature source, therefore it can be safely used for processing in background without having to care about possible changes within provider that may happen concurrently. Also, even in the case of provider being deleted, any feature source obtained from the provider will be kept alive and working (they are independent and owned by the caller).
Sometimes there are cases when some data needs to be shared between vector data provider and its feature source. In such cases, the implementation must ensure that the data is not susceptible to run condition. For example, if it is possible that both feature source and provider may need reading/writing to some shared data at the same time, some synchronization mechanisms must be used (e.g. mutexes) to prevent data corruption.
int QgsVectorDataProvider::fieldNameIndex | ( | const QString & | fieldName | ) | const |
Returns the index of a field name or -1 if the field does not exist.
QMap< QString, int > QgsVectorDataProvider::fieldNameMap | ( | ) | const |
Return a map where the key is the name of the field and the value is its index.
|
pure virtual |
|
protected |
|
pure virtual |
Get feature type.
|
pure virtual |
Query the provider for features specified in request.
bool QgsVectorDataProvider::hasErrors | ( | ) |
Provider has errors to report.
|
inlinevirtual |
It returns false by default.
Must be implemented by providers that support saving and loading styles to db returning true
|
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.
|
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.
const QList< QgsVectorDataProvider::NativeType > & QgsVectorDataProvider::nativeTypes | ( | ) | const |
Returns the names of the supported types.
|
inlinevirtual |
Return list of indexes to names for QgsPalLabeling fix.
|
inlinevirtual |
Return list of indexes of fields that make up the primary key.
|
protected |
|
virtual |
Set encoding used for accessing data from layer.
|
virtual |
Returns the permanent storage type for this layer as a friendly name.
bool QgsVectorDataProvider::supportedType | ( | const QgsField & | field | ) | const |
check if provider supports type of field
|
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 |
Default implementation simply iterates the features
|
static |
bitmask of all provider's editing capabilities
|
protected |
List of attribute indices to fetch with nextFeature calls.
|
protected |
Old-style mapping of index to name for QgsPalLabeling fix.
|
protected |
|
protected |
|
protected |
|
protected |
Encoding.
|
protected |
should provider fetch also features that don't have geometry?
|
protected |
True if geometry should be added to the features in nextFeature calls.
|
protected |
The names of the providers native types.