77范文网 - 专业文章范例文档资料分享平台

ArcGIS - Engine二次开发 - 提高篇 - 图文(6)

来源:网络收集 时间:2019-03-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

ArcGIS Engine高级功能开发

//设置输出路径

strOutputPath = txtOutputPath.Text;

//叠置分析结果

IGeoProcessorResult result = null;

//创建叠置分析实例,执行叠置分析

string strOverlay=cboOverLay.SelectedItem.ToString(); try {

//添加处理过程消息

txtMessage.Text = \开始叠置分析……\+\; switch (strOverlay) {

case \求交(Intersect)\:

Intersect intersectTool = new Intersect(); //设置输入要素

intersectTool.in_features = pObject; //设置输出路径

strOutputPath += strName + \ + \; intersectTool.out_feature_class = strOutputPath; //执行求交运算

result = gp.Execute(intersectTool, null) as IGeoProcessorResult; break; case \求并(Union)\:

Union unionTool = new Union(); //设置输入要素

unionTool.in_features = pObject; //设置输出路径

strOutputPath += strName + \ + \; unionTool.out_feature_class = strOutputPath; //执行联合运算

result = gp.Execute(unionTool, null) as IGeoProcessorResult; break;

case \标识(Identity)\:

Identity identityTool = new Identity(); //设置输入要素

identityTool.in_features = inputFeat; identityTool.identity_features = overlayFeat; //设置输出路径

strOutputPath += strName + \ + \; identityTool.out_feature_class = strOutputPath; //执行标识运算

result = gp.Execute(identityTool, null) as IGeoProcessorResult;

ArcGIS Engine高级功能开发

break; } }

catch (System.Exception ex) {

//添加处理过程消息

txtMessage.Text += \叠置分析过程出现错误:\ + ex.Message+\; }

//判断叠置分析是否成功

if (result.Status != ESRI.ArcGIS.esriSystem.esriJobStatus.esriJobSucceeded) txtMessage.Text+=\叠置失败!\; else {

this.DialogResult = DialogResult.OK;

txtMessage.Text += \叠置成功!\; } }

细心的同学可能会发现,Union和Intersect设置输入要素和叠置要素的方式是一致的,它们是将两种要素读入到IGpValueTableObject中,然后赋值给in_features,而Identity工具是针对in_features和 identity_features分别赋值。因为在ArcGIS的叠置分析中Union和Intersect两种工具可以针对两个以上的图层进行叠置运算,而Identity工具是针对两个要素的运算,其实质是使用叠置要素对输入要素进行更新的一个过程。

另外,Identity工具需要本机中具有ArcInfo级别的Licence权限,如果你的当前电脑没有安装ArcInfo,请在实现的过程中将Identity的相关代码进行屏蔽,如果装有ArcInfo,在运行程序之前,首先需要打开ArcGIS LicenceManager的服务。我们通过以下方式设置Licence权限。 进入到MyGIS的MainForm窗体的设计器界面,右键单击LicenceControl,选择菜单中的“属性”选项。选择Products中的ArcInfo选项。

图 17 LicenceControl设置

ArcGIS Engine高级功能开发

运行程序,点击菜单“叠置分析”,弹出叠置分析参数设置窗口,添加叠置分析要素文件,并设置输出路径如下。

图 18叠置分析参数设置

点击分析,可得到如下结果。

图 19叠置分析效果

3.2.3 小结

本节我们系统讲解了叠置分析功能的开发并进一步完善了MyGIS系统。当然,我们的工程中的叠置分析的功能还存在一些不足之处,比如叠置求交和叠置联合是针对两个或以上要素类进行的操作,我们这里仅实现了两个要素类的操作。如果您有兴趣,可以自己动手进行扩展。同时,您也可以尝试自己通过ArcEngine来实现ArcGIS中的其他分析操作,并添加到MyGIS中。

ArcGIS Engine高级功能开发

ArcGIS Engine高级功能开发

4 地图编辑

地图编辑功能涉及到比较复杂的地图与鼠标的交互以及事件的响应,ArcGIS提供了强大的地图编辑的相关功能。本节我们将尝试实现一些简单的地图编辑功能,包括点、线、面要素形状的创建和移动。通过本节希望你能掌握ArcEngine实现地图编辑的机制以及常用的地图编辑的接口。

4.1 添加控件

新建一个C#.Net项目,项目名称为OverLay,将Form1的名字设置为MainForm,Text属性设为“地图编辑”,并添加ToolbarControl 、MapControl、TOCControl、LicenceControl、四个Button、两个ComboBox、两个Label和一个GroupBox等控件。

将ToolbarControl 、TOCControl的伙伴控件设为MapControl,ToolbarControl 加载添加数据按钮和地图浏览的功能按钮。控件布局效果如下图所示。

图 20界面效果

控件属性设置如下:

表 3控件属性设置

控件类型 Label Label Name属性 Text属性 选择图层: 编辑任务: 控件说明 MapControl中的图层 编辑的方式 cboLayers载入图层名称 开始编辑状态 ComboBox cboLayers ComboBox cboTasks Button Button

btnRefreshLayers 更新图层 btnStartEditing 开始编辑

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库ArcGIS - Engine二次开发 - 提高篇 - 图文(6)在线全文阅读。

ArcGIS - Engine二次开发 - 提高篇 - 图文(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/555538.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: