如何在ArcObject中构建临时FeatureClass?

时间:2016-09-01 14:07:59

标签: arcgis arcobjects

我想构建一个包含临时FeatureClass的临时Features,例如积分,这些在编程后期无用。

虽然,我搜索了ArcObject API reference,但我找不到解决此问题的有效方法。那么如何构建临时“容器”来存储一些临时功能呢?

我应该先使用CreateFeatureClass构建一个真正的FeatureClass,然后再将其删除吗?我不认为这种方法很酷,因为我必须处理一些CLSID事情。

PS:此“容器”必须能够返回Cursor

2 个答案:

答案 0 :(得分:0)

我认为您应该使用InMemoryWorkspace。

IWorkspaceFactory2 objWorkspaceFactory = new InMemoryWorkspaceFactoryClass();             IWorkspaceName objWorkspaceName = objWorkspaceFactory.Create(string.Empty,p_strName,null,0);             IName objName =(IName)objWorkspaceName;             IWorkspace objWorkspace =(IWorkspace)objName.Open();

现在使用此工作区可以创建Temprorary要素类(执行搜索,获取光标,然后删除要素类)。 我相信在您的情况下,InMemory Workspace比使用ShapeFile或个人地理数据库更有效。

答案 1 :(得分:0)

您可以使用IScratchWorkspaceFactory2界面,该界面用于在临时目录中创建临时个人地理数据库。您可以通过查看%TEMP%环境变量来查找此目录。临时个人地理数据库的名称为mx.mdb,其中唯一标识地理数据库的最低正数。

IScratchWorkspaceFactory2 factory = new ScratchWorkspaceFactoryClass();
var selectionContainer = factory.DefaultScratchWorkspace;