ArcGIS接口总结

2026/4/23 13:10:11

当需要创建一个新的workspace,连接已存在的workspace和寻找有关workspace的信息时使用IWorkspaceFactory接口。 成员

24.1、IWorkspaceFactory.ContainsWorkspace方法

[C#]

public bool ContainsWorkspace(sring parentDirectory,IFileNames filenames);

浏览文件系统查询查找workspace时,ContainsWorkspace非常有用。它提供一个parent directory和待检查的文件名称列表。如果parent directory表示这个factory的一个workspace或parent directory包含一个workspace或一个workspace的connection文件时,返回true。 [C#]

//e.g.,nameOFFile=\//nameOFFile=\

public Boolean IWorkspaceFactory_ContainsWorkspace_Example(string nameOfFile) {

//use with AccessWorkspaceFactory IWorkspaceFactory workspaceFactory=new

ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass();

//for FileGDB use ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass();

ESRI.ArcGIS.esrSystem.IFileNames fileNames=new ESRI.ArcGIS.esriSystem.FileNamesClass(); fileNames.Add(nameOfFile);

return workspaceFactory.ContainsWorkspace(\}

24.2、IWorkspaceFactory.Create方法

[C#]

public IWorkspaceName Create(string parentDirectory,string Name,IPropertySet ConnectionProperties,int hWnd);

Workspace factory由多种类型,Create会产生不同的结果。ArcSDE类型,将会产生一个新的connection文件(.sde)。ArcInfo workspace factory类型,创建一个INFO的亚文件夹。ConnectionProperties参数是个可选项,指定任何额外的所需连接属性,例如创建远程数据库workspace时的connection文件所需的server,instance,user和password。如果没有指定连接属性,这个方法将会返回一个对话框提醒用户需要属性。 [C#]

public void IWorkspaceFactory_Create_Example_Access() {

//create a new Access workspace factory IWorkspaceFactory workspaceFactory=new

ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass(); //Create a workspacename with the workspace factory IWorkspaceName

workspaceName=workspaceFactory.Create(\ //Cast for IName

ESRI.ArcGIS.esriSystem.IName name=(ESRI.ArcGIS.esriSystem.IName)workspaceName; //Open a reference to the access workspace through the name object IWorkspace pGDB_workspace=(IWorkspace)name.Open();

Console.WriteLine(\{1}\}

public void IWorkspaceFactory_Create_Example_FileGDB() {

//create a new FileGDB workspace factory IWorkspaceFactory workspaceFactory=new

ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass(); //Create a workspacename with the workspace factory IWorkspaceName

workspaceName=workspaceFactory.Create(\ //Cast for IName

ESRI.ArcGIS.esriSystem.IName name=(ESRI.ArcGIS.esriSystem.IName)workspaceName; //Open a reference to the FileGDB workspace through the name object IWorkspace fileGDB_workspace=(IWorkspace)name.Open();

Console.WriteLine(\

{1}\}

public void IWorkspaceFactory_Create_Example_ArcSDE() {

ESRI.ArcGIS.esriSystem.IPropertySet propertySet=new ESRI.ArcGIS.esriSystem.PropertySetClass(); propertySet.SetProperty(\ propertySet.SetProperty(\ propertySet.SetPropert(\ propertySet.SetProperty(\

propertySet.SetProperty(\

//Create a workspacename with the workspace factory IWorkspaceFactory workspaceFactory=new

ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactoryClass(); //Create a workspacename with the workspace factory IWorkspaceName

workspaceName=workspaceFactory.Create(\t,0);

//Cast for IName

ESRI.ArcGIS.esriSystem.IName name=(ESRI.ArcGIS.esriSystem.IName)workspaceName; //Open a reference to the sde workspace through the name object IWorkspace sde_workspace=(IWorkspace)name.Open(); //the path returned in this case weill be for the sde connection

Console.WriteLine(\}

24.3、IWorkspaceFactory.GetWorkspaceName方法

[C#]

public IWorkspaceName GetWorkspaceName(string parentDirectory,IFileNames filenames); Example [C#]

public void IWorkspaceFactory_GetWorkspaceName_Example() {

ESRI.ArcGIS.esriSystem.IFileNames fileNames=new ESRI.ArcGIS.esriSystem.FileNamesClass(); fileNames.Add(\

fileNames.Add(\

fileNames.Add(\

IWorkspaceFactory workspaceFactory=new

ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass(); IWorkspaceName

workspaceName=workspaceFactory.GetWorkspaceName(\

Console.WriteLine(workspaceName.PathName);

fileNames.Reset();

string fn=fileNames.Next(); while(fn!=null) {

Console.WriteLine(fn); fn=fileNames.Next(); }

ESRI.ArcGIS.esriSystem.IName name=(ESRI.ArcGIS.esriSystem.IName)workspaceName; IWorkspace workspace=(IWorkspace)name.Open(); }

24.4、IWorkspaceFactory.Open方法

[C#]

public IWorkspace Open(IPropertySet ConnectionProperties,int hWnd); Example [C#]

Public IWorkspace IWorkspaceFactory_Open_Example(String server,String instance,String user,String password,String database,String version) {

ESRI.ArcGIS.esriSystem.IPropertySet propertySet=new ESRI.ArcGIS.esriSystem.PropertySetClass(); propertySet.SetProperty(“SERVER”,server);


ArcGIS接口总结.doc 将本文的Word文档下载到电脑
搜索更多关于: ArcGIS接口总结 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219