地理信息系统集成与开发课程设计Word格式文档下载.doc

上传人:wj 文档编号:6964137 上传时间:2023-05-07 格式:DOC 页数:14 大小:1.08MB
下载 相关 举报
地理信息系统集成与开发课程设计Word格式文档下载.doc_第1页
第1页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第2页
第2页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第3页
第3页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第4页
第4页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第5页
第5页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第6页
第6页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第7页
第7页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第8页
第8页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第9页
第9页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第10页
第10页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第11页
第11页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第12页
第12页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第13页
第13页 / 共14页
地理信息系统集成与开发课程设计Word格式文档下载.doc_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

地理信息系统集成与开发课程设计Word格式文档下载.doc

《地理信息系统集成与开发课程设计Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《地理信息系统集成与开发课程设计Word格式文档下载.doc(14页珍藏版)》请在冰点文库上搜索。

地理信息系统集成与开发课程设计Word格式文档下载.doc

四、实验结果:

成个程序设计实现完成后的运行结果截图

五、存在问题

六、认识总结

实验一

ArcEngine控件及核心类库的认识及Mapcontrol控件的使用和地图的显示与地图缩放以及TOCcontrol、toolbarcontrol控件使用

本实验包括六部分内容:

1、ArcEngine安装;

2、ArcEngine认识;

3、常用类库;

4、Mapcontrol控件使用、地图的显示和地图缩放;

5、TOCcontrol认识;

6、Toolbarcontrol认识

一、实验目的与要求:

ArcEngine(简称AE)是ArcGIS9新的开发产品,是从核心的ArcObjects(AO)组件构建。

ArcEngine是开发人员用于建立自定义应用程序的GIS组件的一个完整类库。

可以创建独立应用或者集成到第三方系统。

因其具有强大的功能和良好的封装性,备受GIS集成和开发人员的青睐。

本次实验旨在使学生学会安装ArcEngine,熟悉ArcEngine的几个常用类库和地图控件及其使用方法,理解各个类库的对象模型图,模型图中的类,接口,方法,属性的表示方法。

并掌握如何通过联机帮助快速了解各接口的功能和使用方法。

二、实验内容:

【每一步的截图及代码】

1、开发环境部署。

在开发ArcEngine程序之前,需要首先部署完成开发环境。

本课程选择C#语言为例,C#的集成开发环境选择VisualStudio2005/2008/2012,对ArcEngine开发环境的搭建需要遵循下面的步骤顺序进行:

安装VisualStudio2005/2008/2012

安装ArcGISEngineRuntime

安装ArcEngineDeveloperKit

安装授权文件

【安装过程截图等】

2、ESRICONTROLS类库及Mapcontrol控件认识

(1)Control类库包含MapControl,PageLayoutControl,TOCControl,ToolbarControl,GlobeControl,SceneControl,LicenseControl,SymbologyControl等

(2)常用的类库包括:

SystemUILibrary;

SystemLibrary;

CartoLibrary;

ControlsLibrary;

DisplayLibrary;

GeoDatabaseLibrary;

GeometryLibrary。

通过联机帮助,了解每个类库的概况

1)打开类库参考,查看对象模型图

启动ENGINE帮助,打开ArcObjectslibraryreference\esriControls打开对象模型图

【截图】OMD

【截图】OMDclassdiagramkey

2)从图中认识对象模型图中的三个类:

抽象类,组件类,普通类。

(从矩形框的形状识别)。

3)从对象模型图中,学习mapcontrol控件的接口及接口支持的方法。

【截图】OMD中的Mapcontrol组件类

4)Mapcontrol控件的使用(C#环境)

a)运行VS2005,启动VS2005集成开发环境。

b)新建一个ARCENGINE项目,如图所示,并命名为”第一个AE+C#程序”。

c)双击解决方案中的MainForm.cs

d)查看设计界面

e)查看运行效果

f)返回设计状态,在axTOCControl1控件上右击,选择属性(页)。

查看其与

axMapControl1控件的绑定情况

g)点击解决方案中的“查看代码”,了解命名空间的使用

h)查看代码中的using:

(使用命名空间)。

偿试把其中的usingESRI.ArcGIS.Carto;

注释掉(如下图注释情况)。

然后运行,查看结果。

i)使用类库定位工具,定位该接口所在的类库。

j)将工具条控件与地图控件绑定,并为工具条控件添加更多的按钮

5)运行,并加载数据,查看运行结果。

三、实验步骤

四、实验结果

实验二

C#+ArcEngine程序设计入门:

地图浏览与图层控制

电子地图的加载、缩放和漫游等浏览功能是空间数据可视化最基本的要求。

本次实验通过指导学生如何编写代码与MapControl控件交互实现基本的地图浏览功能。

实现方式有两种:

1.使用ESRI提供的封装好的现成组件类,编写简单的代码即可;

2.自己写代码实现;

需要理解地图浏览的编程思路。

通过两种实现方式,进一步了解Map控件的使用方法和组件式GIS集成与开发的思路和流程。

1)启动VS2005集成开发环境,新建一个VC#项目:

Windows就应用程序。

2)在窗体上依次添加:

工具栏控件(toolStrip1)、分栏容器控件(splitContainer1)、内容表控件(axTOCControl1)、地图控件(pControl1)、开发许可控件(axLicenseControl1)。

3)设置内容表控件和地图控件的DOCK属性为FILL,以充满整个区域。

4)为工具栏控件添加7个按钮(BUTTON),依次将其文本改为:

加载数据,放大,缩小,漫游,全图,缩小,放大,并设置相应图标。

将其NAME属性改为:

CmdZoomIn,CmdZoonOut,ToolPan,CmdFullextent,ToolZoomOut,ToolZoomIn

5)设计过程中的界面依次如下:

6)工具栏按钮包括:

CommandButtonandToolButton。

7)在FORM1窗体类中,添加一个方法EjectAllButton,用于维护ToolButton按钮的弹起状态。

代码如下:

8)将三个工具按钮的checkonclick属性改为:

True。

9)在三个工具按钮的Click事件中,调用方法:

EjectAllButton,并将三个工具按钮的clicked属性设置为TRUE。

10)在按钮的点击事件和地图的鼠标按下事件中添加代码,实现对应功能。

11)运行结果

注意事项:

1)此程序涉及到命名按钮和工具按钮。

它们执行功能的方式不同,编写代码时,要注意。

命令按钮执行功能是立即执行,所以代码写在其click事件中。

工具按钮执行功能分两步,所以它对应的功能代码分别写在按钮的click事件中和地图控件的mousedown事件中。

2)区别缩放功能哪些是调用封装好的类哪些是自己编写的代码。

3)在该小程序中,使用到Ienvelope,Icommand,CurrentTool,必须引用它们所在的类库。

4)关于EjectAllButton方法,功能是在点击一个按钮时,把其它的按钮弹起。

实验三

C#+ArcEngine程序设计入门:

地图绘图

地图绘图是GIS基本功能。

本次实验通过指导学生如何编写代码实现在MapControl控件绘图的功能。

此绘图功能只是在地图控件上把图形绘出来,并不保存,随着地图的刷新而消失。

如果要所绘图形在地图上不原地图刷新而消失,可以使用addelement方法,把所绘图形作为一个元素而显示在地图上。

本实验主要使用特定的符号,绘制点、线、面图形。

关于图形的符号修改,请参见图形可视化实验。

要求:

独立完成实验,手动键入代码,积极思考。

理解引入枚举变量的作用,理解switch方法的使用。

1)打开实验二的VC#项目。

在其基础上,为工具栏再添加绘图按钮,实现绘图功能。

2)在原有工具栏基础上,为工具栏控件再添加3个按钮(BUTTON),依次将其文本属性改为:

绘点、绘线、绘面。

并设置相应图标。

ToolDrawPoint,ToolDrawLine,ToolDrawPolygon。

3)设计的界面如下:

4)更新FORM1窗体类中的方法EjectAllButton,用于维护新添加的ToolButton按钮的弹起状态。

5)将新增的三个工具按钮的checkonclick属性改为:

6)在新增的三个工具按钮的Click事件中,调用方法:

EjectAllButton,并写代码将新增三个工具按钮的clicked属性设置为TRUE。

如:

7)在命名空间中,定义一个枚举变量类型(对比:

整型INT是系统定义的),如下:

8)在FORM1类中,使用前面定义的枚举类型,定义一个枚举类型的变量:

Dbutton,代

码如下:

9)在工具按钮的click事件中,使用枚举变量记录,按下了哪一个按钮。

10)为窗体类编写一个绘图方法,以供调用。

11)在地图的mousedown事件中编写代码,调用绘图方法,实现绘图功能,代码如下图

12)运行,查看绘图效果,如下图

1)首先理解为什么要使用枚举变量,如何定义枚举类型

2)理解工具按键实现其功能的代码分布在于按钮点击事件和地图的mousedown事件两处。

理解它们如何协调工作。

3)掌握为类添加方法的步骤。

4)理解VC#的事件响应机制。

实验四

地图查询与地图要素选择

一、实验目的:

地图查询是GIS基本功能,几乎任何一个GIS系统都具有查询功能。

而地图要素的选择是执行其它操作的前提,所以要素选择功能也是基本功能。

本次实验通过指导学生如何编写代码实现基于MapControl控件的地图查询功能和要素选择功能。

本实验以矩形拉框选择和点击选择为例,同学们可以自己动手实现其他查询方法。

本实验主要使用了ISelectionSet接口的Search方法、IFeatureSelection接口的SelectFeatures方法以及IMAP接口的SelectByShape方法。

本实验编写了获得颜色方法:

GetColor方法,获得符号方法:

GetSymbol方法以及选择要素方法:

select_features_on_map。

属性查询也是GIS的基本功能,同学们可以模仿ARCMAP中的属性查询,本实验中给出了窗体间相互传递数据的方法,依据此方法同学们可以自己给予实现。

理解并掌握本实验中使用的主要接口

和方法。

理解并掌握窗体间传递数据的方法。

学会为类添加属性和方法,并掌握如何调用。

1、打开实验三的VC#项目。

在其基础上,为工具栏再添加查询和选择按钮,实现选择功能。

具体步骤包括以下。

2、在原有工具栏基础上,为工具栏控件再添加3个按钮(BUTTON),依次将其文本属性改为:

框选、点查、属查。

ToolSelectionByRectangle,ToolInformationByPoint,CmdFindByAttributes。

3、设计的界面如下:

4、更新FORM1窗体类中的方法EjectAllButton,用于维护新添加的ToolButton按钮的弹起状态。

5、将新增的二个工具按钮的checkonclick属性改为:

6、在新增的二个工具按钮的Click事件中,调用方法:

EjectAllButton,并写代码将新增两个工具按钮的clicked属性设置为TRUE。

并设置鼠标形状。

7、在命名空间中,更新定义的枚举变量类型,如下:

8、关于枚举变量的使用,前面实验已多次使用,在此不再赘述。

务必理解它的作用,本实验仍然使用它。

9、为FORM1编写一个获得颜色的方法和获得符号方法,以供调用。

10、为FORM1再编写一个选择地图上要素的方法,该方法可以接受多边形类型的几何参数,用于选择要素。

其实只是将SelectByShape方法需要使用的选择环境和选择方法,重新封装了一下。

11、将第二个实验中,使用AE封装类的地方,自己编写代码实现其功能。

如不更改,可以测试,发现问题,动手解决。

12、在地图的MOUSEDOWN事件中,为switch语句新增一个分支,实现拉框选择的功能:

13、在地图的MOUSEDOWN事件中,为switch语句再新增一个分支,实现点击选择的功能。

此功能要弹出一个显示数据的窗体。

此功能的代码请细心研读,关于算法的效率是否可以提取好的建议。

14、为Form2类编写一个接受外界数据的方法和清空FORM2上LISTBOX的方法,以供FORM1调用,将数据传递给FORM2,在向LISTBOX追加数据之前清空。

15、判断FORM2窗体实例是存在,用于确保有且仅有一个FORM2存在,此任务需要为FORM2编写一个属性,且要在FORM2实例化后立即初始化。

并在FORM1中定义一个FORM2成员。

另需在FORM2的Dispose方法中设置:

atpresent=false;

标识窗体关闭涉及代码如下:

16、运行效果如下图:

1)首先理解使用到的接口,没有讲过的自己动手查看帮助。

2)理解窗体间传递数据的方法,窗体作为一个对象,如果它要获得数据,则必需具有获得外界数据的方法。

3)掌握为类添加方法的属性的步骤。

4)多编写方法,供调用,可以提高主程序的可读性。

5)本实验中使用的算法并不一定是最优的算法,欢迎同学们提出优化建议,这对于同学们掌握这块内容具有很大的帮助。

6)本实验并没有实现如ARCMAP中的属性查询功能,同学们可以自己动手实现。

界面设

计参见如下:

实验五

文档加载与鹰眼功能的实现

鹰眼功能是某些GIS中的一个有趣的功能。

通过该项功能可以训练同学们使用AE中的方法、属性实现特定功能的思路。

本次实验通过指导学生如何为窗体类添加多个方法,分别实现对应操作,以供调用。

并实现如ARCMAP中的打开文档功能。

实现鹰眼图控制主图的功能,同时实现主图中的显示范围在整个地图中的位置功能。

本实验主要使用了IMapControl2接口的LoadMxFile方法、CenterAt方法、IGraphicsContainer接口的DeleteAllElements方法、AddElement方法等。

独立完成实验,手动键入代码,积极思考。

理解并掌握本实验中使用的主要接口和方法。

理解并掌握为窗体类添的方法,并掌握如何调用。

1、新建一个VC#项目。

添加一个工具栏控件。

为工具栏添加5个按钮,分别为,打开文档,放大,缩小,漫游,全图。

2、在窗体上添加一个splitContainer1控件,在其右Panel中添加地图控件,在其左边的Panel再添加一个splitContainer2,设置splitContainer2的orientation为Horizontal,在splitContainer2上部添加内容表控件,在其下部添加另一个地图控件作为鹰眼图。

设置界面如下:

3、在本程序的命名空间中定义一个枚举类型:

4、在FORM1类中添加一个私有成员变量:

5、为FORM1类添加维护工具按钮的方法:

6、为FORM1类添加创建颜色:

7、为FORM1类添加加载地图文档:

8、为窗体上对应控件的对应事件添加以下代码:

9、打开一个地图文档,运行效果如下图:

1)首先理解鹰眼图中的红色矩形就是主图的EXTENT。

2)从实现思路上,主图与鹰眼图的相互控制如何实现?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2