Arcgis Engine二次开发实验报告

上传人:慢*** 文档编号:228608833 上传时间:2021-12-23 格式:DOC 页数:48 大小:1.52MB
返回 下载 相关 举报
Arcgis Engine二次开发实验报告_第1页
第1页 / 共48页
Arcgis Engine二次开发实验报告_第2页
第2页 / 共48页
Arcgis Engine二次开发实验报告_第3页
第3页 / 共48页
Arcgis Engine二次开发实验报告_第4页
第4页 / 共48页
Arcgis Engine二次开发实验报告_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《Arcgis Engine二次开发实验报告》由会员分享,可在线阅读,更多相关《Arcgis Engine二次开发实验报告(48页珍藏版)》请在金锄头文库上搜索。

1、GIS二次开发实验报告学 号: 201420310115 姓 名: 李梦南 班 级: 1423101 专 业: 地理信息系统 任课老师: 李小龙 二零一七年六月十二日目录1实验一:AOI书签开发11.1实验目的11.2实验内容11.3实验步骤与结果12.1实验目的52.2实验内容52.3实验步骤与结果52实验三:地图渲染93.1实验目的93.2实验内容93.3实验步骤结果93实验四:空间数据处理164.1实验目的164.2实验内容164.3实验步骤与结果164实验五:GIS分析255.1实验目的255.2实验内容255.3实验步骤与结果255实验六:栅格数据处理336.1实验目的336.2实验

2、内容336.3实验步骤与结果336实验总结431 实验一:AOI书签开发1.1 实验目的 掌握AOI书签程序开发1.2 实验内容 实现AOI书签的创建 实现AOI书签的调用1.3 实验步骤与结果实验思路、关键代码(全面注释)、运行结果截图实验思路:空间书签是用户定义创建的标志某个特定地理位置的快捷方式,创建好书签后能够很方便的找到某个地理位置。在本实验中我们需要创建的是AOI书签,即用户所关心的一个范围,通过调用该书签,用户可以马上找到书签所指范围。实现本实验主要包括以下几个方面:1. 添加控件和类库引用:添加创建书签控件、保存和调用书签控件,添加Geometry类库2. 添加“创建书签”函数

3、:创建书签,保存当前感兴趣范围,将书签名加入组合框,以便调用3. 添加“书签名称设置”窗体:获取书签名,传递给主窗体4. 添加两个事件响应函数:“创建书签”菜单项的点击事件,作用是打开“书签名称设置”窗体;“确认”按钮的点击事件,作用是调用创建书签函数5. 实现与调用书签:添加组合框的事件响应函数,作用是当组合框中选项改变时,地图将刷新显示出书签所记录的范围。实现创建书签的流程图如下:关键代码:1. 添加控件和类库引用using ESRI.ArcGIS.Geometry;2. 添加“创建书签”函数public void CreateBookmark(string sBookmarkName)

4、/参数名为书签名 /通过IAOIBookmark接口创建一个变量,用于保存当前地图的范围 IAOIBookmark aoiBookmark = new AOIBookmarkClass(); /判断如果变量不为空的话,将当前地图的属性赋给变量,变量名为书签名 if (aoiBookmark != null) aoiBookmark.Location = axMapControl1.ActiveView.Extent; aoiBookmark.Name = sBookmarkName; /通过IMapBookmarks接口访问当前地图,在地图中加入新建书签 IMapBookmarks bookm

5、arks = axMapControl1.Map as IMapBookmarks; if (bookmarks != null) bookmarks.AddBookmark(aoiBookmark); /将新建书签名加入组合框,以便调用 cbBookmarkList.Items.Add(aoiBookmark.Name); 3. 添加“书签名称设置”窗体/定义一个主窗体变量,用于保存主窗体对象 public MainForm m_frmMain; /用于传入主窗体对象 public AdmitBookmarkName(MainForm frm) InitializeComponent();

6、if (frm != null) m_frmMain = frm; /“确认”按钮的“点击”事件响应函数,用于创建书签 private void btAdmit_Click(object sender, EventArgs e) if (m_frmMain != null | tbBookmarName.Text = ) m_frmMain.CreateBookmark(tbBookmarName.Text); this.Close(); 4. 实现与调用书签/“创建书签”按钮的“点击”事件响应函数 private void miCreateBookmark_Click(object send

7、er, EventArgs e) AdmitBookmarkName frmABN = new AdmitBookmarkName(this); frmABN.Show(); /组合框的事件响应函数,选择不同书签,显示不同范围 private void cbBookmarkList_SelectedIndexChanged(object sender, EventArgs e) /访问地图所包含的书签,获取书签序列 IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks; IEnumSpatialBookmark enumSpa

8、tialBookmark = bookmarks.Bookmarks; /对地图所包含的书签进行遍历,获取与组合框所选项名称相符的书签 enumSpatialBookmark.Reset(); ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next(); while (spatialBookmark != null) if (cbBookmarkList.SelectedItem.ToString() = spatialBookmark.Name) spatialBookmark.ZoomTo(IMap)axMapControl1

9、.ActiveView); axMapControl1.ActiveView.Refresh(); break; spatialBookmark = enumSpatialBookmark.Next(); 5. 运行结果实验二:地图数据组织与访问2.1 实验目的 了解ArcGIS Engine中地图数据的组织结构 掌握ArcGIS Engine地图数据访问方法2.2 实验内容 编写“数据操作”类 利用DataGridView控件展示Continents图层的序号和名称字段2.3 实验步骤与结果实验思路:本实验要实现的功能是地理数据列表显示,是用.NET Framework提供的数据格网视图控件

10、显示指定图层的属性数据,操作对象为“Continents”图层中各个洲的名称数据。实验包含以下几部分:1. 添加控件:“空间数据”菜单项和“访问图层数据”下拉菜单项2. 添加“数据展示台”窗体:用于显示访问图层的名称数据3. 添加数据操作类,为该类导入相关引用和类库:用于管理当前项目中涉及数据操作的相关功能4. 为数据操作类添加相应函数:主要是两个获取函数,一个是获取图层函数,目的是获取各图层;一个是获取“Continents”图层,并读取该图层中各个洲的名称,以DataTable类型返回5. 添加事件响应函数:添加“访问图层数据”菜单项点击函数,显示数据展示台窗体实验实现的流程图如下:关键代

11、码:1. 添加“数据展示台”窗体public DataBoard(String sDataName,DataTable dataTable) /初始化窗体及控件 InitializeComponent(); /设置文本框中的文本和数据格网视图的数据源 tbDataName.Text = sDataName; dataGridView1.DataSource = dataTable; 2. 添加数据操作类using System.Data;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesFile; /定义一个变量保存当前地图对象 public IMap m_map; /用于传入当前地图对象 public DataOperator(IMap map) m_map = map; 3. 获取地图图层/添加成员函数,获取地图中各大洲名称,用表的形式返回 public DataTable GetContinentsNames() /获取Continents图层,并进行访问,判断是否成功 ILayer layer = GetLayerByName(Continents); IFeatureLayer featureLaye

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号