Provides access to members that control the Spatial Cache Management.
Description
ISpatialCacheManageris an optional interface that can be used to enable and disable feature caching within a specified spatial envelope.
Members
Name | Description | |
---|---|---|
CacheExtent | The extent of the spatial cache. | |
CacheIsFull | Indicates if the spatial cache is full. | |
EmptyCache | Empties the spatial cache. | |
FillCache | Fills the spatial cache using the specified extent. |
ISpatialCacheManager.CacheExtent Property
The extent of the spatial cache.
Public ReadOnly Property CacheExtent As IEnvelope
public IEnvelope CacheExtent {get;}
Remarks
The CacheExtentproperty returns the envelope that represents the current boundary of the cached area. An empty envelope is returned if the cache is empty (the cache is not active).
ISpatialCacheManager.CacheIsFull Property
Indicates if the spatial cache is full.
Public ReadOnly Property CacheIsFull As Boolean
public bool CacheIsFull {get;}
Remarks
The CacheIsFullproperty returns true if the cache is full (the cache is active). The FillCachemethod is used to make the cache active and to set the boundary of the cache. Calling FillCache causes the workspace to fetch objects from the database and fill the cache. The time to fill the cache and the amount of memory consumed with the cache depends on the extent of the cache and the density and size of features in the feature classes being cached.
ISpatialCacheManager.EmptyCache Method
Empties the spatial cache.
Public Sub EmptyCache ( _
)
public void EmptyCache (
);
Remarks
The EmptyCachemethod empties the cache and makes it inactive.
ISpatialCacheManager.FillCache Method
Fills the spatial cache using the specified extent.
Public Sub FillCache ( _
ByVal Extent As IEnvelope _
)
public void FillCache (
IEnvelope Extent
);
Remarks
The CacheIsFull property returns true if the cache is full (the cache is active). The FillCache method is used to make the cache active and to set the boundary of the cache. Calling this method causes the workspace to fetch objects from the database and fill the cache. Only features in open feature classes within the cache extent are fetched. Opening a feature class that participates in a topology or geometric network will also open all other feature classes participating in the topology or geometric network.
The time to fill the cache and the amount of memory consumed with the cache depends on the extent of the cache and the density and size of features in the feature classes being cached.
It should be noted that all attributes of a feature within the envelope will be cached when the call is made to FillCache. Also, only those features that are in currently open feature classes will be cached. Therefore if you only want to perform spatial searches against a specific feature class it would make sense to only have that feature class open when the cache is filled. The more feature classes open when FillCache is called the more expensive the fill cache operation is.
Classes that implement ISpatialCacheManager
Classes | Description |
---|---|
Workspace | Workspace Object. |
Remarks
Enabling feature caching improves the performance of all spatial searches whose query geometry lies within the cached area and and also improves the performance of all queries that retrieve features by object ID (for example, GetRow, GetFeature, GetRows, and GetFeatures). At ArcGIS release 8.3 and earlier, caching of features using ISpatialCacheManagerrequires that there be an active edit session. At ArcGIS release 9.0 and higher, using ISpatialCacheManager does not require an active edit session.
Use of the cache is transparent to editing applications. Objects retrieved using non-recycling cursors may be updated and stored by the editing application. As in the uncached case, the geodatabase takes care of ensuring read and query consistency when queries are issued againt updated objects. The cache is exposed to end users as the edit cache in ArcMap for ArcGIS release 8.3 and earlier, and the map cache for ArcGIS releases 9.0 and higher. The cache improves performance significantly for network editing when working with ArcSDE geodatabases.
The SpatialCacheManager optimistically builds caches for features within the workspace. It caches the features in the cache extent for any open feature class. Note that opening a feature class that participates in a topology or geometric network will also open all other feature classes participating in the topology or geometric network. To correctly use the cache, you should be aware of which feature classes are open within a workspace. If a reference to the workspace is returned from a map document, the open feature classes will include all the feature classes for that workspace in the map. If you have opened the workspace through the Geodatabase API, by using a method such as IFeatureWorkspace::OpenFeatureDataset, only those features from feature classes that have been explicitly opened using the IFeatureWorkspace::OpenFeatureClass method will be cached.