上一篇介紹了使用添加引用的方法調用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;獲取了程序啓動時的路徑,然後解決了絕對路徑的問題,這樣的程序可以順利打包運行。