C#AO中调用ArcToolbox中自定义的模型.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图 图 2 Reclassify 中 Reclassification 的设置 C#+AO 中 调用 ArcToolbox 中自定义的模型 我们知道,可以通过 ArcGIS 提供的 Geoprocessing 工 具调用 ArcToolbox 中提供的各类工具,然而,如果是调用 自定义的模型该如何设置? 示例: 根据高程点插值为面, 然后进行坡度分析,最后以 示例: 根据高程点插值为面, 然后进行坡度分析, 最后以 15 度为界限进行重分类。 在 ArcGIS中 在 ArcGIS 中 ArcToolbox 中新建模型,然后使用 C# 调用该 模型。 开发环境: VS2010 ,ArcGIS10.1 , ArcObject10.1 1. 在 ArcGIS 中新建模型 首先,在 ArcToolbox 首先,在 ArcToolbox 中新建工具箱,然后在该工具箱下新 建模型,如图 1 所示。 图 1 新建模型 然后,添加工具到该模型中, 搜索 IDW ,Slope ,Reclassify 到该模型中,然后进行连接及参数设置, IDW 右键, Make 中设置Variable ,From Parammeter ,Input point features ,即完成 添加输入参数。 双击 Reclassify ,在 Reclassification 中设置 重分类的属性,如图 2 所示。 需要注意的事,在输入 Old values 需要注意的事,在输入 Old values 时, ”-”前后需添加空格, 而且最后一行 NoData 也是要添加的,否则会出现如图 3 所 示错误。 图 3 输入 Old values 时未输入空格显示的错误提示 最后,在 Input point features 和 Output raster ( 3)分别右 键选择Model Parameter命令,右上角出现“ p”即为设置成功。 至此,自定义建模完成,在 ArcGIS 至此,自定义建模完成,在 ArcGIS 中运行成功无误后便可 进入下一步,调用自定义模型。 2.调用自定义模型 VS2010中,设计界面如图 VS2010 中,设计界面如图 4 所示 图 4 设计界面图 引用命名空间: ESRI.ArcGIS.AnalysisTools ESRI.ArcGIS.Geoprocessor ESRI.ArcGIS.System ESRI.ArcGIS.Version 代码中加入: using ESRI.ArcGIS.Geoprocessor; using ESRI.ArcGIS.esriSystem; 图 5 错误 当出现如图 5 所示错误时,解决办法如下: static class Program /// lt;summarygt; /// 应用程序的主入口点。 /// lt;/summarygt; [STAThread] static void Main() Application.EnableVisualStyles(); 10 Application.SetCompatibleTextRenderingDefault(false); 11 ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.Product 12Code.EngineOrDesktop); 12 Application.Run(new Form1()); 13 14 即在 Program.cs 中添加 ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.Product Code.EngineOrDesktop); 图 6 错误 解决办法为: Form1 解决办法为: Form1 中添加 License 授权代码 IAoInitialize pAoInitialize = new AoInitializeClass(); esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable; licenseStatus = pAoInitialize.Initialize(esriLicenseProductCode.esriLicense ProductCodeAdvanced); pAoInitialize.CheckOutExtension(esriLicenseExtensionCo de.esriLicenseExtensionCode3DAnalyst); 至此,整个应用程序运行成功!效果如图 7 所示。 图 7 运行结果图 最后,附上整个应用程序的代码: using System; using System.Co

文档评论(0)

wangyueyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档