gis软件设计实验报告完整版.doc《GS软件设计》实习报告 PAGE PAGE 59 地理与生物信息学院 2012 / 2013 学年 第 一 学期 GIS软件设计 实 验 报 告 课程名称: GIS软件设计 实验名称: 小型GIS软件系统的设计与开发 班 级 学 号 学 生 姓 名 冶福荣 郑正中  指 导 教 师 原立峰   日 期: 2012 年 9 月 软件设计题目 基于ArcGIS Engine及C#编程语言构建一个小型GIS平台系统。 二、设计内容 软件为一个小型的GIS平台,主要包括:空间数据存取模块、地图浏览模块、地图编辑模块、空间查询模块、空间分析模块、地图修饰模块。 (1)空间数据存取模块 该模块实现对地图数据的新建、加载、保存、另存和打印输出对于地图的硬拷贝输出实现所见即所得效果。 (2)地图浏览模块 该模块主要包括地图工具、滚动条,状态条、鹰眼图、内容视图等。其中地图工具可以实现放大、缩小、中心放大、中心缩小、全景视图、漫游、要素选择和取消、空间查询等具体功能。 (3)地图数据编辑模块 该模块能够实现新建图层、添加图层、删除所有图层、开始编辑和结束编辑的操作。编辑可以对图层进行创建新特征、修改任务、移动特征和设置捕捉环境等操作。 (4)空间查询模块 该模块实现的是属性查询。 (5)空间分析模块 该模块可以进行缓冲区分析。 设计要求 使用ArcGIS Engine和C#、VB.net等编程语言完成任务。 实现过程 空间数据存储模块 图1. 文件菜单 图2. 工具栏 新建地图 创建同步地图类ControlsSynchronizer 新建新的地图对象IMap map=new map();同时更新地图文档 加载shapefile文件和mxd文档 新建打开文档对话框,设置文件类型为”(*.shp)|*.shp” 将对话框获得的shapefile文档的地址返回,检查文档是否存在,若存在则将文档加载,并将文档中的参数添加至featureclass和featurelayer中;若不存在,则错误提示。 更新mapcontrol和鹰眼中的地图。 保存地图文档 使用ESRI提供的接口函数IMapDocument类中的void Save(bool bUseRelativePaths, bool bCreateThumnbail);函数。 另存地图文档 首先需用户确认是否需要保存当前的地图文档,之后调用类ControlsSaveAsDocCommandClass(),进行地图另存为操作。 打印地图文档 图3. 打印窗体界面 创建打印窗体类:PrintPageLayoutForm,将地图文档传递到窗体中预览,选择打印机、纸张大小、打印方向等,将地图打印出来。 地图输出为图片 图4.地图输出为图片界面 创建地图输出窗体类:ExportMapForm,选择输出的路径、分辨率、图片尺寸、图片类型,并将地图输出为图片。 地图浏览模块 地图工具 实现工具栏中的控件,比如加载地图文件、添加地图图层、地图显示、漫游功能、中心缩放、放大缩小等功能。 分别创建GIS Basic Command类:OpenNewMapDocument、ZoomIn、ZoomOut 、FixedZoomIn、FixedZoomOut、FullExtent、GoBackToPreviousExtent、GoToNextExtent、ReDoDraw、UnDoDraw。 在工具栏,将这些功能添加上,单击实现。 具体代码如下: /// summary /// 新建地图文档 /// /summary /// param name=sender/param /// param name=e/param private void OpenNewDocument_Click(object sender, EventArgs e) { ICommand command = new OpenNewMapDocument(m_controlsSynchronizer); ITool tool = command as ITool; command.OnCreate(m_mapControl.Object); command.OnClick();