學習筆記之ArcGIS Engine調用自定義GP服務(二)

上一篇介紹了使用添加引用的方法調用GP服務,但是存在一個缺陷,工具引用使用的是絕對路徑,在程序打包的時候就會出現問題,這也是困擾我很久的問題,後來通過利用相對路徑的方法,調用GP服務,打包之後可以在其他電腦上安裝使用,接下來就介紹一下第二中調用GP服務的方法。

2.調用文件的方式調用GP服務


首先將GP服務的工具箱放到程序中


1.在程序工程中添加GP工具箱

     //定義GeoProcessor對象
            Geoprocessor gp = new Geoprocessor();
            //IGeoProcessor2 gp = new GeoProcessorClass();
            //設置參數
            gp.OverwriteOutput = true;
            //設置工具箱所在的路徑()
            string strPath = System.Windows.Forms.Application.StartupPath;
            gp.AddToolbox(strPath + "\\JGTool.tbx");

2.設置參數

 IVariantArray parameters = new VarArrayClass();
         
parameters.Add(Sdem.Text.ToString().Trim());
         parameters.Add(SDshp.Text.ToString().Trim());
         parameters.Add(DDfield.Text.ToString().Trim());
         parameters.Add(weight1.Text.ToString().Trim());
         parameters.Add(weight2.Text.ToString().Trim());
         parameters.Add("");
         parameters.Add("");
         parameters.Add("");
          //執行工具
         gp.Execute("Model3", parameters, null);

3.程序就可以順利使用GP服務了。

解釋一下,這裏主要用了string strPath = System.Windows.Forms.Application.StartupPath;獲取了程序啓動時的路徑,然後解決了絕對路徑的問題,這樣的程序可以順利打包運行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章