Subgroup: Vector
Class: QgsVectorLayerCache¶
-
class
qgis.core.
QgsVectorLayerCache
¶ Bases:
PyQt5.QtCore.QObject
This class caches features of a given QgsVectorLayer.
The cached features can be indexed by QgsAbstractCacheIndex.
Proper indexing for a given use-case may speed up performance substantially.
Methods
addCacheIndex
Adds a QgsAbstractCacheIndex to this cache. blockSignals
cacheGeometry
Returns true if the cache will fetch and cache feature geometries. cacheSize
Returns the maximum number of features this cache will hold. cachedFeatureIds
Returns the set of feature IDs for features which are cached. checkInformationCovered
Checks if the information required to complete the request is cached. childEvent
children
connectNotify
customEvent
deleteLater
disconnect
disconnectNotify
dumpObjectInfo
dumpObjectTree
dynamicPropertyNames
event
eventFilter
featureAtId
Gets the feature at the given feature id. featureCount
Returns the number of features contained in the source, or -1 if the feature count is unknown. featureRemoved
Gets called, whenever a feature has been removed. fields
Returns the fields associated with features in the cache. findChild
findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject findChildren
findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] getFeature
Query the layer for the feature with the given id. getFeatures
Query this VectorLayerCache for features. hasFullCache
Returns true if the cache is complete, ie it contains all features. inherits
installEventFilter
isFidCached
Check if a certain feature id is cached. isSignalConnected
isWidgetType
isWindowType
killTimer
layer
Returns the layer to which this cache belongs metaObject
moveToThread
objectName
parent
property
pyqtConfigure
Each keyword argument is either the name of a Qt property or a Qt signal. receivers
removeCachedFeature
Removes the feature identified by fid from the cache if present. removeEventFilter
requestCompleted
Gets called, whenever the full list of feature ids for a certain request is known. sender
senderSignalIndex
setCacheAddedAttributes
If this is enabled, the subset of cached attributes will automatically be extended to also include newly added attributes. setCacheGeometry
Enable or disable the caching of geometries setCacheSize
Sets the maximum number of features to keep in the cache. setCacheSubsetOfAttributes
Set the subset of attributes to be cached setFullCache
This enables or disables full caching. setObjectName
setParent
setProperty
signalsBlocked
sourceCrs
Returns the coordinate reference system for features in the cache. startTimer
thread
timerEvent
tr
wkbType
Returns the geometry type for features in the cache. Attributes
attributeValueChanged
Is emitted when an attribute is changed. cachedLayerDeleted
Is emitted when the cached layer is deleted. destroyed
destroyed(self, QObject = None) [signal] featureAdded
Is emitted, when a new feature has been added to the layer and this cache. finished
When filling the cache, this signal gets emitted once the cache is fully initialized. invalidated
The cache has been invalidated and cleared. objectNameChanged
objectNameChanged(self, str) [signal] staticMetaObject
-
addCacheIndex
(self, cacheIndex: QgsAbstractCacheIndex)¶ Adds a QgsAbstractCacheIndex to this cache. Cache indices know about features present in this cache and decide, if enough information is present in the cache to respond to a
QgsFeatureRequest
. The layer cache will take ownership of the index.Parameters: cacheIndex – The cache index to add.
-
attributeValueChanged
¶ Is emitted when an attribute is changed. Is re-emitted after the layer itself emits this signal. You should connect to this signal, to be sure, to not get a cached value if querying the cache. [signal]
-
cacheGeometry
(self) → bool¶ Returns true if the cache will fetch and cache feature geometries.
New in version 3.0.
See also
-
cacheSize
(self) → int¶ Returns the maximum number of features this cache will hold. In case full caching is enabled, this number can change, as new features get added.
Returns: int
-
cachedFeatureIds
(self) → object¶ Returns the set of feature IDs for features which are cached.
New in version 3.0.
See also
-
cachedLayerDeleted
¶ Is emitted when the cached layer is deleted. Is emitted when the cached layers layerDelete() signal is being emitted, but before the local reference to it has been set to NULL. So call to layer() will still return a valid pointer for cleanup purpose. [signal]
-
checkInformationCovered
(self, featureRequest: QgsFeatureRequest) → bool¶ Checks if the information required to complete the request is cached. i.e. If all attributes required and the geometry is held in the cache. Please note, that this does not check, if the requested features are cached.
Parameters: featureRequest – The QgsFeatureRequest to be answered Returns: True if the information is being cached, false if not
-
childEvent
()¶
-
connectNotify
()¶
-
customEvent
()¶
-
disconnectNotify
()¶
-
featureAdded
¶ Is emitted, when a new feature has been added to the layer and this cache. You should connect to this signal instead of the layers’, if you want to be sure that this cache has updated information for the new feature
Parameters: fid – The featureid of the changed feature [signal]
-
featureAtId
(self, featureId: int, feature: QgsFeature, skipCache: bool = False) → bool¶ Gets the feature at the given feature id. Considers the changed, added, deleted and permanent features
Parameters: - featureId – The id of the feature to query
- feature – The result of the operation will be written to this feature
- skipCache – Will query the layer regardless if the feature is in the cache already
Returns: true in case of success
-
featureCount
(self) → int¶ Returns the number of features contained in the source, or -1 if the feature count is unknown.
-
featureRemoved
(self, fid: int)¶ Gets called, whenever a feature has been removed. Broadcasts this information to indices, so they can invalidate their cache if required.
Parameters: fid – The feature id of the removed feature.
-
fields
(self) → QgsFields¶ Returns the fields associated with features in the cache.
-
finished
¶ When filling the cache, this signal gets emitted once the cache is fully initialized. [signal]
-
getFeature
(self, fid: int) → QgsFeature¶ Query the layer for the feature with the given id. If there is no such feature, the returned feature will be invalid.
-
getFeatures
(self, featureRequest: QgsFeatureRequest = QgsFeatureRequest()) → QgsFeatureIterator¶ Query this VectorLayerCache for features. If the VectorLayerCache (and moreover any of its indices) is able to satisfy the request, the returned QgsFeatureIterator will iterate over cached features. If it’s not possible to fully satisfy the request from the cache, part or all of the features will be requested from the data provider.
Parameters: featureRequest – The request specifying filter and required data. Returns: An iterator over the requested data. getFeatures(self, expression: str) -> QgsFeatureIterator Query the layer for features matching a given expression.
getFeatures(self, fids: object) -> QgsFeatureIterator Query the layer for the features with the given ids.
getFeatures(self, rectangle: QgsRectangle) -> QgsFeatureIterator Query the layer for the features which intersect the specified rectangle.
-
hasFullCache
(self) → bool¶ Returns true if the cache is complete, ie it contains all features. This may happen as a result of a call to setFullCache() or by through a feature request which resulted in all available features being cached.
See also
New in version 3.0.
-
invalidated
¶ The cache has been invalidated and cleared. Note that when a cache is invalidated the fullCache() setting will be cleared, and a full cache rebuild via setFullCache( true ) will need to be performed. [signal]
-
isFidCached
(self, fid: int) → bool¶ Check if a certain feature id is cached.
param fid The feature id to look for
Returns: True if this id is in the cache See also
-
isSignalConnected
()¶
-
layer
(self) → QgsVectorLayer¶ Returns the layer to which this cache belongs
-
receivers
()¶
-
removeCachedFeature
(self, fid: int) → bool¶ Removes the feature identified by fid from the cache if present.
Parameters: fid – The id of the feature to delete Returns: true if the feature was removed, false if the feature id was not found in the cache
-
requestCompleted
(self, featureRequest: QgsFeatureRequest, fids: object)¶ Gets called, whenever the full list of feature ids for a certain request is known. Broadcasts this information to indices, so they can update their tables.
Parameters: - featureRequest – The feature request that was answered
- fids – The feature ids that have been returned
-
sender
()¶
-
senderSignalIndex
()¶
-
setCacheAddedAttributes
(self, cacheAddedAttributes: bool)¶ If this is enabled, the subset of cached attributes will automatically be extended to also include newly added attributes.
Parameters: cacheAddedAttributes – Automatically cache new attributes
-
setCacheGeometry
(self, cacheGeometry: bool)¶ Enable or disable the caching of geometries
Parameters: cacheGeometry – Enable or disable the caching of geometries See also
-
setCacheSize
(self, cacheSize: int)¶ Sets the maximum number of features to keep in the cache. Some features will be removed from the cache if the number is smaller than the previous size of the cache.
Parameters: cacheSize – indicates the maximum number of features to keep in the cache
-
setCacheSubsetOfAttributes
(self, attributes: Iterable[int])¶ Set the subset of attributes to be cached
Parameters: attributes – The attributes to be cached
-
setFullCache
(self, fullCache: bool)¶ This enables or disables full caching. If enabled, all features will be held in the cache. The cache size will incrementally be increased to offer space for all features. When enabled, all features will be read into cache. As this feature will most likely be used for slow data sources, be aware, that the call to this method might take a long time.
Parameters: fullCache – True: enable full caching, False: disable full caching Note
when a cache is invalidated() (e.g. by adding an attribute to a layer) this setting is reset. A full cache rebuild must be performed by calling setFullCache( true ) again.
See also
-
sourceCrs
(self) → QgsCoordinateReferenceSystem¶ Returns the coordinate reference system for features in the cache.
-
timerEvent
()¶
-
wkbType
(self) → QgsWkbTypes.Type¶ Returns the geometry type for features in the cache.
-