国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ArcGIS二次開發實踐— — 遍歷ToolBox中的工具!

2019-11-17 02:42:36
字體:
來源:轉載
供稿:網友

ArcGIS二次開發實踐— — 遍歷ToolBox中的工具!

在AO中,打開“文件A”的基本流程是:

1、創建對應“文件A”類型的WorkspaceFactory;

2、用WorkspaceFactory創建“文件A”的Workspace,Workspace可以是文件所在文件夾(如本文后面要創建的ToolBox的Workspace),也可以是空間數據庫(如果你把文件存到數據庫里了或要打開數據庫里的數據)。

3、用Workspace打開“文件A”,獲得對應類型的“文件A”對象;

----------------------------------------------------好了,開始(這里,我的Toolbox路徑為F:/Root/Tools/MagmaDistribution.tbx)。

ArcGIS的每個Toolbox,在windows下都是一個.tbx文件。

通過AO的對象模型圖可以知道,在.Net里用GPToolbox對象來代表Toolbox,因此我們首先需要打開事先準備好的.tbx文件,并實創建一個GPToolbox對象來管理它。

1、創建一個ToolboxWorkspaceFactory對象。

2、ToolboxWorkspaceFactory來創建用于打.tbx文件的ToolboxWorkspace。

3、用ToolboxWorkspaceFactory通過.tbx文件的路徑創建GPToolbox對象。

這樣我們就創建了一個代表ToolBox的對象,代碼如下:

1 ToolboxWorkspaceFactory toolBoxWSF = new ToolboxWorkspaceFactoryClass();2 IToolboxWorkspace toolBoxWS = (IToolboxWorkspace)toolBoxWSF.OpenFromFile("F://Root//Tools", 0);3 IGPToolbox toolbox = toolBoxWS.OpenToolbox("MagmaDistribution.tbx");

我的MagmaDistribution.tbx里放了3個tool,下面我們來獲得這四個tool的名字,并輸出到控制臺:

 1  //輸出toolbox的路徑信息 2                 Console.WriteLine("IGPToolBox的PathName:" + toolbox.PathName); 3                 //從IGPToolbox的ToolNames屬性獲得toolbox里3個tool的名字。 4                 ESRI.ArcGIS.GeoPRocessing.IEnumGPToolName toolName = toolbox.ToolNames; 5                 IGPToolName gpn = toolName.Next(); 6                 while (gpn != null) 7                 {//循環輸出tool的名字 8                     Console.WriteLine(gpn.DisplayName); 9                     gpn = toolName.Next();10                 }

運行效果:

  

完整代碼:

 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using ESRI.ArcGIS.esriSystem; 5 using ESRI.ArcGIS.Geodatabase; 6 using ESRI.ArcGIS.DataSourcesGDB; 7 using ESRI.ArcGIS.Geoprocessing; 8  9 namespace esriTestConsole10 {11     class Program12     {13         private static LicenseInitializer m_AOLicenseInitializer = new esriTestConsole.LicenseInitializer();14     15         [STAThread()]16         static void Main(string[] args)17         {18             //ESRI License Initializer generated code.//這是創建ArcGIS控制臺項目時自動生成的19             m_AOLicenseInitializer.Initializeapplication(new esriLicenseProductCode[] { esriLicenseProductCode.esriLicenseProductCodeEngine, esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB, esriLicenseProductCode.esriLicenseProductCodeBasic, esriLicenseProductCode.esriLicenseProductCodeStandard, esriLicenseProductCode.esriLicenseProductCodeAdvanced },20             new esriLicenseExtensionCode[] { esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork, esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst });21             //ESRI License Initializer generated code.22             try23             {24                 ToolboxWorkspaceFactory toolBoxWSF = new ToolboxWorkspaceFactoryClass();25                 IToolboxWorkspace toolBoxWS = (IToolboxWorkspace)toolBoxWSF.OpenFromFile("F://Root//Tools", 0);26                 IGPToolbox toolbox = toolBoxWS.OpenToolbox("MagmaDistribution.tbx");27                 //輸出toolbox的路徑信息28                 Console.WriteLine("IGPToolBox的PathName:" + toolbox.PathName);29                 //從IGPToolbox的ToolNames屬性獲得toolbox里4個tool的名字。30                 ESRI.ArcGIS.Geoprocessing.IEnumGPToolName toolName = toolbox.ToolNames;31                 IGPToolName gpn = toolName.Next();32                 while (gpn != null)33                 {//循環輸出tool的名字34                     Console.WriteLine(gpn.DisplayName);35                     gpn = toolName.Next();36                 }3738             }39             catch (Exception ex)40             {41                 Console.WriteLine(ex.Message);42             }43             ////Do not make any call to ArcObjects after ShutDownApplication()44             finally45             {46                 Console.WriteLine("輸入任意字符退出程序:");47                 Console.Read();48                 m_AOLicenseInitializer.ShutdownApplication();49             }50         }51     }52 }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉林省| 城固县| 陇川县| 泊头市| 商洛市| 建宁县| 宝鸡市| 冷水江市| 石河子市| 建阳市| 光泽县| 磐安县| 雷波县| 衡南县| 广平县| 高碑店市| 万年县| 神农架林区| 阿拉善右旗| 仙桃市| 莱阳市| 丽水市| 栾川县| 阿图什市| 荔波县| 高要市| 鄂尔多斯市| 凤台县| 吴川市| 新郑市| 镇雄县| 中山市| 张掖市| 万盛区| 依安县| 泾源县| 彭水| 巩义市| 平泉县| 和田县| 吴旗县|