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.实现与调用书签:添加组合框的事件响应函数,作用是当组合框中选项改变时,地图将刷新显示出书签所记录的范围。
GIS二次开发(B)实验报告

GIS二次开发(B)实验报告二〇一五年11月3日目录1 实验一:AOI书签开发 (1)1.1 实验目的 (1)1.2 实验内容 (1)1.3 实验步骤与结果 (1)2 实验二:地图数据组织与访问 (8)2.1 实验目的 (8)2.2 实验内容 (8)2.3 实验步骤与结果 (8)3 实验三:地图渲染与制图输出 (16)3.1 实验目的 (16)3.2 实验内容 (16)3.3 实验步骤结果 (16)4 实验总结 (23)1实验一:AOI书签开发1.1实验目的✧掌握AOI书签程序开发1.2实验内容✧实现AOI书签的创建✧实现AOI书签的调用1.3实验步骤与结果public void createbookmark(string sbookmarkname)//参数为书签名{//通过iaolbookmark接口创建一个变量,其类型为aoibookmark,保存当前地图范围。
IAOIBookmark aoibookmark = new AOIBookmarkClass();if (aoibookmark!= null){aoibookmark.Location = axMapControl1.ActiveView.Extent; = sbookmarkname;}//通过imapbookmarks接口访问当前地图,并向地图中加入新建书签IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;if (bookmarks!= null){bookmarks.AddBookmark(aoibookmark);}cbbookmarklist.Items.Add();}}}namespace xy{public partial class AdmitBookmarkName : Form{public MainForm m_frmMain;public AdmitBookmarkName(){InitializeComponent();}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();}}}2实验二:地图数据组织与访问2.1实验目的✧了解ArcGIS Engine中地图数据的组织结构✧掌握ArcGIS Engine地图数据访问方法2.2实验内容✧编写“数据操作”类✧利用DataGridView控件展示Continents图层的序号和名称字段2.3实验步骤与结果初始化窗口using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace MapControlApplication1{public partial class Databoard : Form{public Databoard(){InitializeComponent();}public Databoard(string sDataName, DataTable dataTable){//初始化窗体及控件。
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实验总结__________________________________________________ 错误!未定义书签。
arcgis二次开发实验报告--空间对象的选择

实验四空间要素的选择一、实验目的:1. 加深理解接口编程的基本思想,熟悉接口编程的方法;2. 理解图层几何要素选择的基本思想与思路;3. 掌握要素选择的几种基本方法,实现矩形、椭圆、圆形和任意形状的选择。
二、实验内容:1. 调用ESRI.ArcGIS.Controls接口实现要素选择;2. 通过创建class SelectByEllipseClass类编写要素选择程序。
三、实验心得:通过自己动手编写程序,总结了一下调用系统选择工具和自己写类实现选择功能的优缺点:(1)ESRI.ArcGIS.Controls简单易学,能够很好地实现基础平台接口的复用,体现出二次开发利用基础平台的特点;缺点是,仅能ArcGis已经实现了的功能,开发灵活性受限制,难以创新。
(2)创建工具类,优点是能够根据需要编写任意的工具,实现系统尚未封装在内的功能;但对编程人员水平要求高,要熟练掌握基础平台开发语言,难度较大。
这就要求在选择两种方法时慎重考虑。
要熟悉ArcGis的基本功能,根据用户需求要能够迅速知道,利用ArcGis该功能是否可以实现,是,如何实现的,否,与哪些功能类似,就要自己仿照次功能从基础类写起。
四、实验内容:1.功能展示:(1)菜单选项(2)矩形选择(3)圆形选择:(4)椭圆形工具选择:2.实现方法一:调用系统ESRI.ArcGIS.Controls实现(1)设置flag:strMouseDownCtl来获取鼠标按下的菜单。
用该方法仅实现了矩形选择和圆形选择。
private void retagelToolStripMenuItem_Click(object sender, EventArgs e){strMouseDownCtl = "RectSelection";}private void circleSelectionToolStripMenuItem_Click(object sender, EventArgs e){strMouseDownCtl = "CircleSelection";}(2)根据strMouseDownCtl获取的事件调用系统相应的选择工具case"RectSelection":{axMapControl1.CurrentTool = null;axMapControl1.MousePointer =ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerCrosshair;IGeometry pGeom = axMapControl1.TrackRectangle();axMapControl1.Map.ClearSelection();axMapControl1.Refresh(esriViewDrawPhase.esriViewGeoSelection, axMapControl1.Map.ActiveGraphicsLayer, null);axMapControl1.Map.SelectByShape(pGeom, null, false);axMapControl1.Refresh(esriViewDrawPhase.esriViewGeoSelection,axMapControl1.Map.ActiveGraphicsLayer, null);break;}case"CircleSelection":{axMapControl1.CurrentTool = null;axMapControl1.MousePointer =ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerCrosshair;IGeometry pGeom = axMapControl1.TrackCircle();axMapControl1.Map.ClearSelection();axMapControl1.Refresh(esriViewDrawPhase.esriViewGeoSelection, axMapControl1.Map.ActiveGraphicsLayer, null);axMapControl1.Map.SelectByShape(pGeom, null, false);axMapControl1.Refresh(esriViewDrawPhase.esriViewGeoSelection, axMapControl1.Map.ActiveGraphicsLayer, null);break;}3. 实现方法二:通过创建工具类实现选择(1)创建类:SelectByEllipse.csclass SelectByEllipseClass代码结构:(2)在Ellipse Selection菜单下编写响应事件private void ellipseSelectionToolStripMenuItem_Click(object sender, EventArgs e){SelectByEllipseClass selectByEllipse = new SelectByEllipseClass(axMapControl1, this.m_selectionProperty);}五、遇到的问题1.选择新的菜单时,先前使用的菜单没有释放,仍在作用。
gis二次开发实训报告

gis二次开发实训报告
一、实训概述
本次实训是基于GIS二次开发的实践活动,在导师的指导下,我选择了使用ArcGIS进行二次开发,并应用到一个具体的项目中。
本次实训的目的是锻炼我们的GIS应用能力,以及进一步理解和掌握GIS技术在实际项目中的应用。
二、实训过程
1.熟悉ArcGIS开发环境和工具
首先,我通过学习ArcGIS开发文档和相关教程,熟悉了ArcGIS的开发环境和常用工具。
这包括ArcGIS的API、ArcMap、ArcCatalog等。
2.需求分析与功能设计
3.页面布局与交互设计
在功能设计的基础上,我进行了页面布局和交互设计。
我借助ArcGIS提供的UI组件和控制器,设计了用户友好的界面,并考虑了不同设备的适配性。
4.功能实现与调试
5.优化与性能测试
在功能实现后,我对项目进行了性能测试和优化。
我利用ArcGIS提供的性能测试工具,评估项目的性能,并进行了相关优化,以提高应用的响应速度和用户体验。
6.报告撰写与总结
最后,我根据实训过程和成果,撰写了实训报告,并进行了总结。
我总结了本次实训的收获和经验教训,并展望了未来在GIS二次开发方面的进一步发展。
三、实训成果
四、心得体会
通过这次实训,我深刻认识到GIS技术在实际应用中的重要性和广泛性。
GIS二次开发不仅可以提供个性化的地图应用,也可以为各行各业的空间分析、决策支持等提供强大的支撑和解决方案。
同时,我也意识到GIS二次开发是一个不断学习和探索的过程,需要不断更新和提升自己的技术和知识。
我将继续深入学习GIS技术,并在未来的工作中更好地应用和发展。
gis二次开发实习总结

gis 二次开发实习总结 篇一:gis 二次开发实习报告 重庆交通大学 测量与空间信息处理实验报告 实验课程:GIS 二次开发程序设计 实验名称:设计程序完成图像基本操作 班级: 测绘一班 学号: 09210111 姓名: 程 佳 琦 实验日期:2012 年 6 月 5 日 一、实验目的和要求 通过编写程序完成以不同的方式(包括菜单、对话框和命令按钮)加载图像,并完成对 图像的基本操作,包括放大、缩小和平移。
要求程序简洁界面整洁排列有序,能在正确设计程 序的基础上达到对于图像加载及简单操作的程序的熟练程度, 为二次开发的学习打下良好的基 础。
二、实验内容 运用 Visual Basic 设计程序,分别完成以菜单、对话框和命令按钮为对象的像加载,在加 载的基础上实现对图像的一些简单操作,设计程序完成对于图像的一些简单的操作,如放大、 缩小和平移等。
三、实验步骤 1.设计程序完成菜单加载,并且完成相应放大、缩小和平移。
1)设计程序如下: 2)程序运行: 3)打开图像并放大: 4)图像缩小: 5)图像平移: 2.设计程序完成对话框图像加载,并完成相应的基本操作,包括图像的放大、缩小和平 移。
1)设计程序: 2)程序运行: 篇二:GIS 开发实习报告 学号 1221030205 实习报告 1 / 7GIS 程序设计实习 起止日期:2015 年 7 月 13 日 至 2015 年 7 月 19 日 学 班 成生姓名 级 绩 吴馁 12 级地信 2 班 指导教师(签字) 地质与测绘学院 2015 年 7 月 20 日 GIS 程序设计实习 一、实习目的 通过 GIS 程序设计实习,使学生了解需求分析、项目管理方案设计、系统总体设计以及 系统详细设计、系统实施、运行和维护等阶段要完成的具体工作;掌握在 C#和 ArcEngine 环境 下构建应用型地理信息系统的方法。
二、实习内容 熟悉开发环境: Visual Studio 2010; C#; Arc Engine 10.1 功能需求分析 基于组件技术开发应用型地理信息系统 组件式技术已成为当今软件技术的潮流之一。
gis二次开发实习总结

gis 二次开发实习总结 篇一:gis 二次开发实习报告 重庆交通大学 测量与空间信息处理实验报告 实验课程:GIS 二次开发程序设计 实验名称:设计程序完成图像基本操作 班级: 测绘一班 学号: 09210111 姓名: 程 佳 琦 实验日期:2012 年 6 月 5 日 一、实验目的和要求 通过编写程序完成以不同的方式(包括菜单、对话框和命令按钮)加载图像,并完成对 图像的基本操作,包括放大、缩小和平移。
要求程序简洁界面整洁排列有序,能在正确设计程 序的基础上达到对于图像加载及简单操作的程序的熟练程度, 为二次开发的学习打下良好的基 础。
二、实验内容 运用 Visual Basic 设计程序,分别完成以菜单、对话框和命令按钮为对象的像加载,在加 载的基础上实现对图像的一些简单操作,设计程序完成对于图像的一些简单的操作,如放大、 缩小和平移等。
三、实验步骤 1.设计程序完成菜单加载,并且完成相应放大、缩小和平移。
1)设计程序如下: 2)程序运行: 3)打开图像并放大: 4)图像缩小: 5)图像平移: 2.设计程序完成对话框图像加载,并完成相应的基本操作,包括图像的放大、缩小和平 移。
1)设计程序: 2)程序运行: 篇二:GIS 开发实习报告 学号 1221030205 实习报告 1 / 7GIS 程序设计实习 起止日期:2015 年 7 月 13 日 至 2015 年 7 月 19 日 学 班 成生姓名 级 绩 吴馁 12 级地信 2 班 指导教师(签字) 地质与测绘学院 2015 年 7 月 20 日 GIS 程序设计实习 一、实习目的 通过 GIS 程序设计实习,使学生了解需求分析、项目管理方案设计、系统总体设计以及 系统详细设计、系统实施、运行和维护等阶段要完成的具体工作;掌握在 C#和 ArcEngine 环境 下构建应用型地理信息系统的方法。
二、实习内容 熟悉开发环境: Visual Studio 2010; C#; Arc Engine 10.1 功能需求分析 基于组件技术开发应用型地理信息系统 组件式技术已成为当今软件技术的潮流之一。
GIS二次开发综合实习

}
else
{
pMapDocument.SaveAs(strDocFile, true, true);
MessageBox.Show("保存成功!", "信息提示");
using ESRI.ArcGIS.Geodatabase;
在GISControlForm类中添加成员变量:
public static IMapDocument pMapDocument;//需添加命名空间ESRI.ArcGIS.Carto
新建地图文档的相关代码如下:
private void NewFileToolStripMenuItem_Click(object sender, EventArgs e)
if (strDocFile == string.Empty)
return;
if (strDocFile == pMapDocument.DocumentFilename)
{
//将修改后的地图文档保存在原文件中
pMapDocument.Save(esRelativePaths, true);
string strDocFile = string.Empty;
pMapDocument = new MapDocumentClass();
strDocFile = SaveFileDlg.FileName;
if (strDocFile == string.Empty)
return;
pMapDocument.New(strDocFile);
2.实现相关菜单
在解决方案文件上右击,添加引用:
实验6:GIS二次开发

实验五:GIS二次开发一、实验目的1.了解GIS二次开发的基本原理与方法;2.掌握ArcObjects二次开发的基本方法。
二、实验准备1.软件准备:Visual C++6.0,ArcGIS 9.0(ArcObjects)2.资料准备:ArcTutor(空间数据或数字化数据)三、实验步骤1.建立应用程序框架(1)启动Visual C++6.0。
(2)从“File”菜单选择“New”命令(或按Ctrl+N键),弹出“New”对话框。
(3)切换到“Project”选项卡。
(4)在“Project name”中,选取AppWizard MFC(exe),在文本框键入项目的名字,如“AoEx”。
MFC AppWizard根据所键入的项目名字自动生成相应的项目文件和框架类,并在根文件夹下创建以该名字命名的子文件夹,子文件夹中包含初始项目文件。
(5)在“Location”文本框键入用于存放项目的根目录,如“D:\GIS_EX”,或点击文本框后的按钮进行选择。
(6)单击“OK”按钮,弹出MFC AppWizard –Step1 of 6对话框,选择Single documeut (单文档,单文档界面(SDI)一次只允许打开一个文档边框窗口)。
(7)单击“Next”按钮,弹出MFC AppWizard – Step 2 of 6对话框,选择None(该选项不支持任何ODBC库)。
(8)单击“Next”按钮,弹出MFC AppWizard – Step3 of 6对话框,选择“None”选项(表示不带ActiveX支持)。
(9)单击“Next”按钮,弹出MFC AppWizard – Step4 of 6对话框,从中可以选择各种不同的用户界面选项,并可以选择MAPI和Windows Sockets支持。
这里使用缺省设置。
如果要设置其它高级选项,请单击“Advance”按钮,弹出“Advanced Options”对话框。
GIS二次开发实验系统需求分析报告

GIS二次开发实验系统需求分析报告一、背景随着全球化、网络化和知识经济的蓬勃发展,地理信息系统的理论和技术方法也得到了飞速发展,其已被广泛用于环境整治、城市管理等多个领域。
所以对于地理信息系统软件的需求也日益扩大,这些地理信息系统软件的功能包括对于地图的简单浏览、数据查询、修改、专题地图的制作、空间分析等。
任何系统的开发都是为了满足用户的需求,如何开发一个令用户满意的系统,对用户需求的分析显得无比重要,所以就需要进行基本的开发尝试,熟悉地理信息系统的基础功能。
二、开发软件和插件介绍2.1 VB软件的概述:VB是Visual Basic的简称,本次系统开发实验是在VB平台上实现的。
它能够很比较容易的实现各种数据库的链接,能够嵌套其他的如MO的控件,快速的实现GIS基本功能。
2.2 MO的概述:MO是MapObjects的简称,它包括一个OLE控件(OCX)叫做Map(Map control)和一组(三十多个)OLE对象(objects)。
它适用于工业标准程序环境。
如VB6.0,Delphi2.0,PowerBuilder,MS Access等。
通过MO可以实现以下的甚至更多的功能:●显示一张多个Layer地图(道路,河流,边界)。
●放大,缩小,漫游。
●生成图形元素,如点、线、圆、多边形。
●说明注记●识别地图上被选中的元素。
●通过线,方框,区域,多边形,圆拾取物体。
●拾取某参照物特定范围内的物体。
●通过SQL描述来选择物体。
●对选取物体进行基本统计。
●对所选地图元素的属性进行更新,查询。
●绘制专题图。
●标注地图元素。
●从航片或卫星图片上截取图像。
●动态显示实时或系列时间组数据。
三、系统设计目标本次系统设计主要是以熟悉并实现GIS系统的基本功能为主,同时还重点的实现一种空间分析:最短路径分析。
具体详细的设计目标:1、该系统能够实现图的放大、缩小、平移、全视图等操作,从而使用户能够快速的大致理解当前图的内容。
- 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类型对象,分别保存各个州的序号和名称。