我想构建一个包含临时FeatureClass
的临时Features
,例如积分,这些在编程后期无用。
虽然,我搜索了ArcObject API reference
,但我找不到解决此问题的有效方法。那么如何构建临时“容器”来存储一些临时功能呢?
我应该先使用CreateFeatureClass
构建一个真正的FeatureClass,然后再将其删除吗?我不认为这种方法很酷,因为我必须处理一些CLSID
事情。
PS:此“容器”必须能够返回Cursor
。
答案 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;