免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C#+AO中調(diào)用ArcToolbox中自定義的模型

 

我們知道,可以通過ArcGIS提供的Geoprocessing工具調(diào)用ArcToolbox中提供的各類工具,然而,如果是調(diào)用自定義的模型該如何設(shè)置?

示例:根據(jù)高程點(diǎn)插值為面,然后進(jìn)行坡度分析,最后以15度為界限進(jìn)行重分類。

在ArcGIS中ArcToolbox中新建模型,然后使用C#調(diào)用該模型。

開發(fā)環(huán)境:VS2010,ArcGIS10.1,ArcObject10.1

1.在ArcGIS中新建模型

首先,在ArcToolbox中新建工具箱,然后在該工具箱新建模型,如圖1所示。

圖1 新建模型

 然后,添加工具到該模型中,搜索IDW,Slope,Reclassify到該模型中,然后進(jìn)行連接及參數(shù)設(shè)置,IDW右鍵,Make Variable,F(xiàn)rom Parammeter,Input point features,即完成添加輸入?yún)?shù)。雙擊Reclassify,在Reclassification中設(shè)置重分類的屬性,如圖2所示。

圖2 Reclassify中Reclassification的設(shè)置

需要注意的事,在輸入Old values時(shí),”-”前后需添加空格,而且最后一行NoData也是要添加的,否則會(huì)出現(xiàn)如圖3所示錯(cuò)誤。

圖3 輸入Old values時(shí)未輸入空格顯示的錯(cuò)誤提示

最后,在Input point features和Output raster(3)分別右鍵選擇Model Parameter命令,右上角出現(xiàn)“p”即為設(shè)置成功。

至此,自定義建模完成,在ArcGIS中運(yùn)行成功無誤后便可進(jìn)入下一步,調(diào)用自定義模型。

 

2.調(diào)用自定義模型

VS2010中,設(shè)計(jì)界面如圖4所示。

圖4 設(shè)計(jì)界面圖

引用命名空間:

ESRI.ArcGIS.AnalysisTools

ESRI.ArcGIS.Geoprocessor

ESRI.ArcGIS.System

ESRI.ArcGIS.Version

代碼中加入:

using ESRI.ArcGIS.Geoprocessor;using ESRI.ArcGIS.esriSystem;

 

圖5 錯(cuò)誤一

當(dāng)出現(xiàn)如圖5所示錯(cuò)誤時(shí),解決辦法如下:

 1     static class Program 2     { 3         /// <summary> 4         /// 應(yīng)用程序的主入口點(diǎn)。 5         /// </summary> 6         [STAThread] 7         static void Main() 8         { 9             Application.EnableVisualStyles();10             Application.SetCompatibleTextRenderingDefault(false);11             ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);12             Application.Run(new Form1());13         }14     }

即在Program.cs中添加ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

圖6 錯(cuò)誤二

解決辦法為:Form1中添加License授權(quán)代碼

1 IAoInitialize pAoInitialize = new AoInitializeClass();2 esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;3 licenseStatus = pAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);4  pAoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);

至此,整個(gè)應(yīng)用程序運(yùn)行成功!效果如圖7所示。

圖7 運(yùn)行結(jié)果圖

最后,附上整個(gè)應(yīng)用程序的代碼:

 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 using ESRI.ArcGIS.Geoprocessor;11 using ESRI.ArcGIS.esriSystem;12 13 namespace CallModel14 {15     public partial class Form1 : Form16     {17         public Form1()18         {19             IAoInitialize pAoInitialize = new AoInitializeClass();20             esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;21             licenseStatus = pAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);22             pAoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);23 24             InitializeComponent();25         }26 27         private void Form1_Load(object sender, EventArgs e)28         {29 30         }31 32         private void button1_Click(object sender, EventArgs e)33         {34             OpenFileDialog openFileDialog = new OpenFileDialog();35             openFileDialog.Title = "打開文件";36             openFileDialog.Filter = "(shp文件)*.shp|*.shp";37             if (openFileDialog.ShowDialog() == DialogResult.OK)38             {39                 textBox1.Text = openFileDialog.FileName;40             }41         }42 43         private void button2_Click(object sender, EventArgs e)44         {45             SaveFileDialog saveDialog = new SaveFileDialog();46             saveDialog.Title = "保存文件";47             saveDialog.Filter = "(tif文件)*.tif|*.tif|(img文件)*.img|*.img";48             if (saveDialog.ShowDialog() == DialogResult.OK)49             {50                 textBox2.Text = saveDialog.FileName;51             }52         }53 54         private void button3_Click(object sender, EventArgs e)55         {56             Geoprocessor gp = new Geoprocessor();57             gp.OverwriteOutput = true;58 59             gp.AddToolbox(@"D:\Program Files\ArcGIS\Desktop10.1\ArcToolbox\Toolboxes\MyToolbar.tbx");60             IVariantArray parameters = new VarArrayClass();61             parameters.Add(textBox1.Text.ToString().Trim());62             parameters.Add(textBox2.Text.ToString().Trim());63             gp.Execute("Model", parameters, null);64             MessageBox.Show("調(diào)用成功!", "提示");65         }66 67         private void button4_Click(object sender, EventArgs e)68         {69             this.Close();70             //System.Environment.Exit(System.Environment.ExitCode);終止程序方式二71             //Application.Exit();終止程序方式三72         }73     }74 }

 

 

 

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Arcscene二次開發(fā)部分開發(fā)C#
AE程序01
利用Arcengine 直接加載shp文件
ESRI的ArcGis視頻分享
強(qiáng)大的工具XTools for ArcGIS Desktop 和 ArcGIS Pro
把 ArcMap 中的自定義投影導(dǎo)入 ArcGIS Pro
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服