GIS二次开发实验报告
GIS二次开发程序设计

成绩批阅日期重庆交通大学测量与空间信息处理实验报告实验课程:GIS二次开发程序设计实验名称: GIS二次开发班级:学号:姓名:实验日期: 2012 年 6 月 25 日实验一界面设计一、实验目的和要求1、学会对MO进行安装。
2、熟悉Visual Basic和Map Object程序的基本操作。
3、掌握toolbar的操作步骤。
4、设置GIS二次开发的界面,要求界面具有菜单、工具条及设计程序时用到的各种控件等。
二、实验内容1、利用Visual Basic相应控件和操作以及Map Object完成界面设计,运用所安装的MO的控件进行所需界面设计。
2、在设计的界面上一次添加菜单、工具条、图例控件、map控件、状态栏等,并熟练掌握其操作步骤。
三、实验步骤1、在有MO和VB的环境中进行所设计的界面设计。
1)菜单的设计。
要求具有一些常用的功能。
如下图所示:2、对toolbar进行设计。
在菜单栏下面进行插入Button按钮,并在按钮上插入相应图像。
步骤如下图:3、插入map、legend、status等控件,并调整其大小。
得到最后成果图如下图所示:四、实验总结4.1、实验中遇到的困难在进行界面设计时,会遇到一些意想不到的困难,比如在插入toolbar 中的Button时,如果没有加入imagelist控件时,就不能在Button上插入图像。
还有在进行菜单操作时,有时会因为空格运行不当,而不能得到理想的下拉菜单。
4.2、处理方法和技巧在进行设计时,一定要记住操作的先后顺序,不然不能不到效果。
插入map 和legend等控件时,适当调节其大小,使界面更美观。
4.3、经验体会和收获刚开始做实验时感觉好难,不知怎么下手,可在完成这几次实验后我熟悉了MO的最基本功能,发现用VB对GIS进行二次开发没有想象中的那么难,但关于控件的问题很多,而且大家都不是很懂,只能多多交流,从网上搜素相关资料。
现如今地理信息系统的应用越来越广发,对它进行二次开发可以更大的发挥此软件的功能。
GIS二次开发实验报告

GIS二次开发实验报告学号:姓名:班级:专业:指导老师:二零一五年11月15日目录1 实验一:软件安装与AOI书签开发 (2)1.1 实验目的 (2)1.2 实验内容 (2)1.3 实验结果 (2)2 实验二:地图数据组织与访问 (5)2.1 实验目的 (5)2.2 实验内容 (5)2.3 实验结果 (5)3 实验三:地图渲染与制图输出 (9)3.1 实验目的 (9)3.2 实验内容 (9)3.3 实验结果 (9)4 实验四:空间数据处理 (14)4.1 实验目的 (14)4.2 实验内容 (14)4.3 实验结果 (14)5 实验五:GIS分析 (20)5.1 实验目的 (20)5.2 实验内容 (20)5.3 实验结果 (20)6实验六:栅格数据处理 (25)4.1 实验目的 (25)4.2 实验内容 (25)4.3 实验结果 (25)7实验总结 (31)1实验一:软件安装与AOI书签开发1.1实验目的✧掌握AOI书签程序开发1.2实验内容✧实现AOI书签的创建✧实现AOI书签的调用1.3实验步骤与结果安装程序后,新建地图显示项目。
在程序的主窗体上端添加添加菜单项,文本属性为创建书签,控件名为miCreateBookmark,在旁边添加组合框,控件名为cbBookmarkList。
1.右击引用选择AddArcGIS Reference在弹出的对话框中添加引用在主窗体(即MainForm.cs)中添加代码;(1)首先添加引用代码:using ESRI.ArcGIS.Display;using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.ADF;using ESRI.ArcGIS.SystemUI;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesFile;using ESRI.ArcGIS.DataSourcesRaster;(此引用代码都需添加引用后才可以使用,上述引用代码为本类中所需要的所有引用,在之后的编程中,可以不用重复引用)(2)添加“创建书签”函数在MainForm类中添加成员函数CreateBookMark,代码如下:public void CreateBookmark(string sBookmarkName)//参数为书签名{//通过IAOIBookmark接口创建一个变量,其类型为AOIBookmark,用于保存当前地图的范围IAOIBookmark aoiBookmark = new AOIBookmarkClass();if (aoiBookmark != null){aoiBookmark.Location = axMapControl1.ActiveView.Extent; = sBookmarkName;}//通过IMaoBookmarks接口访问当前地图,并向地图中加入新建书签IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;if (bookmarks != null){bookmarks.AddBookmark(aoiBookmark);}//将新建书签名加入组合框中,用于之后调用对应书签cbBookmarkList.Items.Add();}2.添加“书签名成设置”窗体(1)点击项目添加Windows窗体,该窗体命名为“AdmitBookmarkName.cs”,点击添加后,转入设计窗口。
GIS二次开发试验报告

GIS二次开发程序设计实习报告实验课程:GIS二次开发程序设计实验名称:设计程序完成图像基本操作班级:地信101学号: 1022062011姓名:汪翔实验日期: 2013 年 4 月 5 日GIS二次开发程序设计实习报告 (1)一.选题名称 (3)二.研究现状 (3)三.研究思路与方法 (3)四.编程与实现 (4)Arcmap下实现 (4)vb代码 (4)实现结果 (12)VS下实现 (13)C#代码 (14)五.结果与分析 (21)一.选题名称本次GIS二次程序设计实习中我所研究的是空间信息量算分析中的延伸率分析。
二.研究现状GIS的发展引领着空间分析也在迅速的走向成熟,因为空间分析作为GIS的核心技术,同时也是区别于其它信息系统的主要特征,能够根据地理对象的位置和形态特征等采用相关分析模型对其进行综合性的分析、预测乃至决策和支持。
本文针对空间分析在城市发展建设中的作用以及具体内容进行了探讨研究。
我所研究的延伸率是反应城市空间离散程度的一个重要指标,它的计算公式为:延伸率=L/L’L为区域最长轴的长度,L’为区域最短轴的长度三.研究思路与方法当把城市当作单个面状目标看待时,可以直接使用面状目标的形状系数,如延伸率,形状比,紧凑度,圆形率等。
这些指标计算较简单,反应一个抽象的形状。
当把城市看成是面状目标的几何,可以使用放射状指数,标准面积指数等较为复杂的指标来计算。
反应了城市内部的具体联系。
根据这些指标,可以为政府决策,商业运行,旅游开发等一系列经济文化活动带来较为科学的评价指标和行为指导。
在本次实习中,我所研究的方向是利用延伸率来研究城市的空间。
延伸率反应城市空间的带状延伸程度,带状延伸越明显则城市延伸率越大,反应城市的离散程度越大。
四.编程与实现本次实习中主要利用的平台有ArcMap 以及Visual Studio,用于实现的语言有C#及VB,我在老师的指导和查阅书籍的情况下,分别用两种语言实现延伸率的量算,现将结果展示如下:1)在ArcMap下利用VB进行实现:1.创建一个UI按钮控件,重命名为延伸率,打开代码编辑窗口。
gis二次开发实训总结

gis二次开发实训总结GIS(地理信息系统)二次开发实训总结一、引言GIS(地理信息系统)是一种将地理空间信息与属性信息相结合的技术系统,广泛应用于地理信息管理、地理空间分析、空间决策支持等领域。
在GIS软件应用过程中,二次开发能够满足特定需求,提高工作效率和数据处理能力。
本文将总结我在GIS二次开发实训中的学习经验和体会。
二、实训内容实训内容主要包括GIS软件的基本操作、二次开发的常用工具和技术、以及实际项目的开发。
在实训中,我通过学习和实践,掌握了GIS软件的基本操作技巧,如数据导入、地图绘制、属性查询等。
同时,我还学习了GIS二次开发的常用工具和技术,如ArcGIS Engine、ArcObjects、ArcPy等,这些工具和技术能够帮助我们进行地理空间数据的处理和分析。
在实训的最后阶段,我还参与了一个实际项目的开发,通过对项目需求的分析和编码实现,完成了一个基于GIS的地理空间分析系统。
三、学习经验1. 系统学习GIS基础知识:在进行GIS二次开发之前,充分了解GIS的基本概念和原理非常重要。
只有对GIS的基础知识有清晰的认识,才能更好地进行二次开发工作。
2. 熟悉GIS软件的操作:熟练掌握GIS软件的操作是进行二次开发的基础。
通过反复练习和实践,我逐渐熟悉了GIS软件的各种功能和操作方法,提高了工作效率。
3. 深入学习GIS二次开发工具和技术:GIS二次开发涉及到一些专门的工具和技术,如ArcGIS Engine、ArcObjects、ArcPy等。
通过深入学习这些工具和技术,我能够更好地进行地理空间数据处理和分析,并实现特定需求。
4. 学会利用网络资源:在进行GIS二次开发过程中,遇到问题时,学会利用网络资源进行查找和解决是非常重要的。
通过查阅相关文档和论坛,我解决了许多开发中的问题。
5. 多实践、多项目参与:只有不断地实践和参与项目,才能真正掌握GIS二次开发的技巧和经验。
在实践中,我遇到了许多问题,但通过不断尝试和摸索,最终都找到了解决方法。
《GIS二次开发》课程设计报告_图文.

《GIS二次开发课程设计》报告院(系土木工程学院专业地理信息系统小组成员吴波,黄聪,蔡劼,米锐,房海峰,黄罡起讫日期2010.01.04—2010.01.17 目录1 系统实现目标 ....................................2 系统需求分析 ....................................3 系统设计 ........................................3.1 总体设计 ..........................................................................3.2 数据库设计 ......................................................................3.3 平台选择 ..........................................................................3.4 详细设计 ..........................................................................4 功能实现 ........................................4.1 地图载入 ............................................................................4.2 添加图形要素 .....................................................................4.3 通过图形查属性………………………………………………4.4 通过属性查询图形……………………………………………4.5 通过位置查询图形……………………………………………4.6 缓冲区分析……………………………………………………附件 ..............................................1 系统实现目标通过本系统的实施,建立公共灾害信息查询系统,主要针对于火灾和交通事故。
(完整word版)二次开发实习报告

GIS二次开发实验实验报告学院:测绘工程学院专业:地理信息系统班级:1123101姓名:岳志鹏学号:201120310114课程名称:Supermap objects 组件式开发指导老师:徐效波2014年01月目录GIS二次开发实验 ............................................................................ - 1 -一、实验背景........................................................................................ - 3 -二、实验目的........................................................................................ - 3 -三、实验内容及过程 ........................................................................... - 3 -实验一:快速入门 ......................................................................... - 3 -1. 新建项目 ........................................................................ - 3 -2. 数据准备 ........................................................................ - 4 -3. 添加控件 ........................................................................ - 4 -4. 添加菜单项 .......................................................................... - 5 -5.控件的关联 ......................................................................... - 5 -6. 打开工作空间 ...................................................................... - 6 -8. 地图浏览操作 .................................................................... - 7 -9. 显示属性信息 ...................................................................... - 8 -10. 地图量算 ...................................................................... - 9 -实验二:查询功能 ....................................................................... - 10 -1、案例分析 ........................................................................... - 10 -2、准备的数据 ....................................................................... - 10 -3、主要使用的接口和操作 ................................................... - 11 -(1)查找Missouri河: ................................................. - 11 -(2)查询Missouri河穿过的州:................................. - 12 -(3)查询Missouri河200公里以内的县:................. - 14 -(4)查询South Dakota州包含的州: ....................... - 15 -(5)关联查询South Dakota州的人口数: ............... - 17 - 四、实验总结...................................................................................... - 19 -一、实验背景近年来,随着社会信息化发展进程的不断推进,信息所具备的空间特性在众多社会活动公共行政决策和商业决策中发挥的作用越来越大。
GIS二次开发综合实验报告
二次开发综合实验报告目录实验一:设计界面,添加鹰眼控件 ____________________________________________ 1 1.1实验目的__________________________________________________________________ 1 1.2实验内容__________________________________________________________________ 1 1.3实验步骤与结果____________________________________________________________ 1实验二:利用菜单,打开MXD文档,Shapefile文件_____________________________ 4 2.1实验目的__________________________________________________________________ 4 2.2实验内容__________________________________________________________________ 4 2.3实验步骤与结果____________________________________________________________ 4实验三:实现鹰眼功能______________________________________________________ 7 3.1实验目的__________________________________________________________________ 7 3.2实验内容__________________________________________________________________ 7 3.3实验步骤结果______________________________________________________________ 7实验四:实现右键查询图层信息以及删除图层操作 _____________________________ 11 4.1实验目的_________________________________________________________________ 11 4.2实验内容_________________________________________________________________ 11 4.3实验步骤与结果___________________________________________________________ 11实验五:使用多边形选择区域内部要素,并高亮显示____________________________ 21 5.1实验目的_________________________________________________________________ 21 5.2实验内容_________________________________________________________________ 21 5.3实验步骤与结果___________________________________________________________ 21实验六:实现柱状图渲染__________________________________________________ 23 6.1实验目的_________________________________________________________________ 23 6.2实验内容_________________________________________________________________ 23 6.3实验步骤与结果___________________________________________________________ 23实验七:实现最短路径分析(网络分析) ____________________________________ 27 7.1实验目的_________________________________________________________________ 27 7.2实验内容_________________________________________________________________ 27 7.3实验步骤与结果___________________________________________________________ 27实验总结__________________________________________________ 错误!未定义书签。
组件式GIS二次开发 丁利旺
南阳师范学院本科学生实验报告姓名丁利旺院(系)环境科学与旅游学院专业地理信息科学班级13级4班实验课程名称组件式GIS二次开发指导教师及职称李丹开课时间2015至2016 学年一学期南阳师范学院教务处编印实验名称目录实验一:ArcGIS Engine及Visual Studio 2010开发环境设置实验二:地图显示与浏览实验三:地图数据加载实验四:地图数据访问实验五:地图制图及输出实验六:空间数据查询学生姓名:专业:班级:课程名称:组件式GIS 二次开发实验名称:ArcGIS Engine及Visual Studio 2010开发环境设置实验编号:No 1指导教师:李丹实验地点:逸夫楼6楼机房1实验时间:小组合作:是()否(√)小组成员:实验目的:掌握ArcGIS Engine软件和Visual Studio 2010软件的安装方法,能够完成开发环境的配置。
实验设备:普通PC实验内容及步骤:(可插入图片)(1)安装Visual Studio 2010选择Visual Studio 2010安装程序文件夹中的Setup.exe,在弹出的对话框中选择“安装Microsoft Visual Studio 2010”。
在弹出的安装向导中单击“下一步”。
在显示的界面中选中“我已阅读并接受条款”,然后单击下一步。
在显示界面的左侧面板中选择“自定义”,可以改变默认的安装路径。
在安装组件选择的界面中根据实际情况选择需要安装的组件,确保Visual C#被选中,然后点击安装开始整个安装过程。
等待整个安装过程的完成。
安装完成后,点击完成结束整个安装过程。
在开始菜单中或桌面选择运行Visual Studio 2010。
第一次运行Visual Studio 2010,需要选择默认环境设置。
选择“Visual C# 开发设置”,然后点击“启动Visual Studio”。
显示的界面即是Visual Studio 2010集成开发环境。
地理信息系统(GIS)软件工程实习报告—Arc Engine 二次开发 地图显示 Java实现
目录一、内容及要求说明 (1)1.1 内容介绍 (1)1.2 要求说明 (1)二、环境配置 (1)2.1 Arc Objects SDK for Java Platform配置 (1)2.2 Java平台配置及Arc Objects插件安装 (2)三、基于Arc Objects的Java语言二次开发 (4)3.1 系统框架设计 (4)3.2 系统功能设计 (5)3.3 系统功能实现 (6)四、开发总结 (11)一、内容及要求说明1.1 内容介绍本课程实习要求主要是熟悉基于ArcGIS的AE或是AO二次开发过程,了解ArcGIS二次开发体系。
1.2 要求说明本课程二次开发主要实现ArcGIS数据格式地图显示、缩放、平移等基础功能;另外要求实现根据数据的省份字段进行地图复杂查询,并高亮且居中显示查询结果;开发语言不限,可使用C#、Java及VB等;ArcGIS SDK采用AE或AO都可;二、环境配置2.1 Arc Objects SDK for Java Platform配置本人采用基于Arc Objects的Java语言的开发模式,所以为方便开发,需要配置Arc Objects SDK for Java Platform的开发环境。
本人采用【arcgis.desktop完全中文版】.ESRI.ArcGIS.10.CS.iso安装软件,并采用arcGIS10.0kegen注册机进行破解。
(1)ArcGIS许可管理器安装本人采用虚拟光驱Deamon Tools加载ISO镜像文件,打开后进入初始安装选择界面,如图1所示。
第一步安装ArcGIS许可服务器打开后进入初始安装选择界面,选择安装ArcGIS许可管理器,直接点击根据提示进行安装。
图1. 初始安装选择界面第二步进行破解。
首先打开“注册机”,如图2所示,功能选择arc/info,版本不用说:10.0;然后点击右下角的所有,把产生的注册信息全部复制到:安装ArcGIS许可管理器下的目录\License10.0\bin下的service.txt中。
Arcgis Engine二次开发实验报告
GIS二次开发实验报告学号:*************名:***班级:1423101专业:地理信息系统任课老师:李小龙二零一七年六月十二日目录1实验一:AOI书签开发 (1)1.1实验目的 (1)1.2实验内容 (1)1.3实验步骤与结果 (1)2.1实验目的 (5)2.2实验内容 (5)2.3实验步骤与结果 (5)2实验三:地图渲染 (9)3.1实验目的 (9)3.2实验内容 (9)3.3实验步骤结果 (9)3实验四:空间数据处理 (16)4.1实验目的 (16)4.2实验内容 (16)4.3实验步骤与结果 (16)4实验五:GIS分析 (25)5.1实验目的 (25)5.2实验内容 (25)5.3实验步骤与结果 (25)5实验六:栅格数据处理 (33)6.1实验目的 (33)6.2实验内容 (33)6.3实验步骤与结果 (33)6实验总结 (43)1实验一:AOI书签开发1.1实验目的✧掌握AOI书签程序开发1.2实验内容✧实现AOI书签的创建✧实现AOI书签的调用1.3实验步骤与结果实验思路、关键代码(全面注释)、运行结果截图实验思路:空间书签是用户定义创建的标志某个特定地理位置的快捷方式,创建好书签后能够很方便的找到某个地理位置。
在本实验中我们需要创建的是AOI书签,即用户所关心的一个范围,通过调用该书签,用户可以马上找到书签所指范围。
实现本实验主要包括以下几个方面:1.添加控件和类库引用:添加创建书签控件、保存和调用书签控件,添加Geometry类库2.添加“创建书签”函数:创建书签,保存当前感兴趣范围,将书签名加入组合框,以便调用3.添加“书签名称设置”窗体:获取书签名,传递给主窗体4.添加两个事件响应函数:“创建书签”菜单项的点击事件,作用是打开“书签名称设置”窗体;“确认”按钮的点击事件,作用是调用创建书签函数5.实现与调用书签:添加组合框的事件响应函数,作用是当组合框中选项改变时,地图将刷新显示出书签所记录的范围。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GIS二次开发实验报告学号:姓名:班级:专业:指导老师:二零一五年11月15日目录1 实验一:软件安装与AOI书签开发 (2)1.1 实验目的 (2)1.2 实验内容 (2)1.3 实验结果 (2)2 实验二:地图数据组织与访问 (5)2.1 实验目的 (5)2.2 实验内容 (5)2.3 实验结果 (5)3 实验三:地图渲染与制图输出 (9)3.1 实验目的 (9)3.2 实验内容 (9)3.3 实验结果 (9)4 实验四:空间数据处理 (14)4.1 实验目的 (14)4.2 实验内容 (14)4.3 实验结果 (14)5 实验五:GIS分析 (20)5.1 实验目的 (20)5.2 实验内容 (20)5.3 实验结果 (20)6实验六:栅格数据处理 (25)4.1 实验目的 (25)4.2 实验内容 (25)4.3 实验结果 (25)7实验总结 (31)1实验一:软件安装与AOI书签开发1.1实验目的✧掌握AOI书签程序开发1.2实验内容✧实现AOI书签的创建✧实现AOI书签的调用1.3实验步骤与结果安装程序后,新建地图显示项目。
在程序的主窗体上端添加添加菜单项,文本属性为创建书签,控件名为miCreateBookmark,在旁边添加组合框,控件名为cbBookmarkList。
1.右击引用选择AddArcGIS Reference在弹出的对话框中添加引用在主窗体(即MainForm.cs)中添加代码;(1)首先添加引用代码:using ESRI.ArcGIS.Display;using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.ADF;using ESRI.ArcGIS.SystemUI;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesFile;using ESRI.ArcGIS.DataSourcesRaster;(此引用代码都需添加引用后才可以使用,上述引用代码为本类中所需要的所有引用,在之后的编程中,可以不用重复引用)(2)添加“创建书签”函数在MainForm类中添加成员函数CreateBookMark,代码如下:public void CreateBookmark(string sBookmarkName)//参数为书签名{//通过IAOIBookmark接口创建一个变量,其类型为AOIBookmark,用于保存当前地图的范围IAOIBookmark aoiBookmark = new AOIBookmarkClass();if (aoiBookmark != null){aoiBookmark.Location = axMapControl1.ActiveView.Extent; = sBookmarkName;}//通过IMaoBookmarks接口访问当前地图,并向地图中加入新建书签 IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;if (bookmarks != null){bookmarks.AddBookmark(aoiBookmark);}//将新建书签名加入组合框中,用于之后调用对应书签cbBookmarkList.Items.Add();}2.添加“书签名成设置”窗体(1)点击项目添加Windows窗体,该窗体命名为“AdmitBookmarkName.cs”,点击添加后,转入设计窗口。
(2)设置窗体的文本属性为“书签名称设置”,尺寸设置为“200,100”,初始位置设置为“CenterScreen”(3)添加控件,添加一个文本框,控件名为“tbBookmarkName”。
一个按钮,文本属性为“确认”,控件名为“btnAdmit”(4)双击“确认”按钮,自动生成点击事件响应函数,并转至窗体代码页。
3.添加成员变量m_frmMain,并为确认按钮输入代码,代码如下://用于保存主窗体对象public MainForm m_frmMain;//用于传入主窗体对象public AdmitBookmarkName(MainForm frm){InitializeComponent();if (frm != null){m_frmMain = frm;}}//"确认"按钮的“点击”事件响应函数,用于创建书签private void btnAdmit_Click(object sender, EventArgs e){if (m_frmMain != null || tbBookmarkName.Text == ""){m_frmMain.CreateBookmark(tbBookmarkName.Text);}this.Close();}4.为主窗体的“创建书签”菜单生成“点击”事件响应函数,代码如下:AdmitBookmarkName frmABN = new AdmitBookmarkName(this);frmABN.Show();5.为组合框cb_BookmarkList生成“选择索引更改”事件响应函数,代码如下//组合框的“选择索引更改”事件响应函数,用于在改变组合框所选项时地图范围变为其对应书签所保存的范围private void cbBookmarkList_SelectedInexChanged(object sender, EventArgs e){//访问地图所包含的书签,并获取书签序列IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks;//对地图所包含的书签进行遍历,获取与组合框所选项名称相符的书签enumSpatialBookmark.Reset();ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next();while (spatialBookmark != null){if (cbBookmarkList.SelectedItem.ToString() == ){spatialBookmark.ZoomTo((IMap)axMapControl1.ActiveView);axMapControl1.ActiveView.Refresh();break;}spatialBookmark = enumSpatialBookmark.Next();}6.实验结果如下2 实验二:地图数据组织与访问2.1实验目的✧了解ArcGIS Engine中地图数据的组织结构✧掌握ArcGIS Engine地图数据访问方法2.2实验内容✧编写“数据操作”类✧利用DataGridView控件展示Continents图层的序号和名称字段2.3实验步骤与结果1.添加“空间数据”菜单项,在下拉菜单中添加一个菜单项文本为“访问图层数据”名称为“miAccessData”,用于稍后调用“数据展示台”窗体。
2.新建窗体类,窗体文件命名为“DataBoard.cs”文本属性为“数据展示台”。
添加一个文本框,控件名为“tbDataName”,一个数据网格视图,控件名为“dataGridView1”,ReadOnly=true。
如图所示3.在当前窗体代码中加入以下代码public DataBoard(String sDataName, DataTable dataTable){//初始化窗体及控件InitializeComponent();//设置文本框中的文本和数据网格视图的数据源tbDataName.Text = sDataName;dataGridView1.DataSource = dataTable;}4.添加类,命名为“DataOPerator.cs”并导入类库引用using System.Data;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesFile;5.添加以下代码//保存当前地图对象public IMap m_map;//用于传入当前地图对象public DataOperator(IMap map){m_map = map;}6.添加“获取地图图层”功能函数。
代码如下public ILayer GetLayerByName(String sLayerName){//判断图层名或地图对象是否为空。
若为空,函数返回空。
if (sLayerName == "" || m_map == null){return null;}//对地图对象中的所有图层进行遍历。
若某一图层的名称与指定图层名相同,则返回该图层、for (int i = 0; i < m_yerCount; i++){if (m_map.get_Layer(i).Name == sLayerName){return m_map.get_Layer(i);}}return null;}7.添加成员函数GetContinentsNames代码如下public DataTable GetContinentsName(){//获取“Continents”图层,利用IFeatureLayer接口访问,并判断是否成功。
若失败,函数返回空ILayer layer = GetLayerByName("Continents");IFeatureLayer featureLayer = layer as IFeatureLayer;if (featureLayer == null){return null;}//调用IFeatureLayer接口的Seach方法,获取要素指针(IFeatureCursor)接口对象,用于在之后遍历图层中的全部要素,并判断是否成功获取第一个要素,若失败,函数返回空IFeature feature;IFeatureCursor featureCursor = featureLayer.Search(null, false);feature=featureCursor.NextFeature();if (feature==null ){return null ;}//新建DataTable类型对象,用于函数返回DataTable dataTable = new DataTable();//新建DataColumn类型对象,分别保存各个州的序号和名称。