- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
地理与生物信息学院
2012 / 2013 学年 第 一 学期
GIS软件设计
实验报告
课程名称: GIS软件设计
实验名称: 小型GIS软件系统的设计与开发
班
级
学
号
学
生
姓
名
冶福荣 郑正中
指
导
教
师
原立峰
期: 2012 年9月
一、 软件设计题目
基于ArcGIS Engine及C#编程语言构建一个小型 GIS平台系统。
二、 设计内容
软件为一个小型的 GIS平台,主要包括:空间数据存取模块、地图浏览模 块、地图编辑模块、空间查询模块、空间分析模块、地图修饰模块。
(1) 空间数据存取模块
该模块实现对地图数据的新建、加载、保存、另存和打印输出对于地图的硬 拷贝输出实现所见即所得效果。
(2) 地图浏览模块
该模块主要包括地图工具、滚动条,状态条、鹰眼图、内容视图等。其中地 图工具可以实现放大、缩小、中心放大、中心缩小、全景视图、漫游、要素选择 和取消、空间查询等具体功能。
(3) 地图数据编辑模块
该模块能够实现新建图层、添加图层、删除所有图层、开始编辑和结束编辑 的操作。编辑可以对图层进行创建新特征、修改任务、移动特征和设置捕捉环境 等操作。
(4) 空间查询模块
该模块实现的是属性查询。
(5) 空间分析模块
该模块可以进行缓冲区分析。
三、 设计要求
使用ArcGIS Engine和C#、VB.net等编程语言完成任务。
四、 实现过程
空间数据存储模块
O ZMAP
文件丘屁空间奇甸 XSTqqI
新锂new
打幵Open ?
尿存Save
另存为Save砧
打印Print
瑜H堆聞 Export Map
退出Exit
■
图1.文件菜单
口念?的?审::::
图2.工具栏
新建地图
1、 创建同步地图类 ControlsSynchronizer
2、 新建新的地图对象IMap map=new map();同时更新地图文档
加载shapefile文件和mxd文档
1、 新建打开文档对话框,设置文件类型为 ”*shp)|*.shp ”
2、 将对话框获得的shapefile文档的地址返回,检查文档是否存在,若
存在则将文档加载,并将文档中的参数添加至 featureclass 和
featurelayer中;若不存在,则错误提示。
3、 更新mapcontrol和鹰眼中的地图。
c .保存地图文档
使用 ESRI提供的接口函数IMapDocument类中的void Save(bool bUseRelativePaths, bool bCreateThum nbail函数。
D.另存地图文档
首先需用户确认是否需要保存当前的地图文档,之后调用类
ControlsSaveAsDocCommandClass()进行地图另存为操作。
打印地图文档
图3.打印窗体界面
创建打印窗体类:PrintPageLayoutForm,将地图文档传递到窗体中预览,选择打 印机、纸张大小、打印方向等,将地图打印出来。
F.地图输出为图片
图4.地图输出为图片界面
创建地图输出窗体类:ExportMapForm,选择输出的路径、分辨率、图片尺寸、图 片类型,并将地图输出为图片。
地图浏览模块
地图工具
实现工具栏中的控件,比如加载地图文件、添加地图图层、地图显示、漫游 功能、中心缩放、放大缩小等功能。
分别创建 GIS Basic Comma n类:Ope nN ewMapDocumenZoomln ZoomOut、 FixedZoomln、FixedZoomOut、FullExtent 、GoBackToPreviousExtent、 GoToNextExtent、ReDoDraw UnDoDraw
在工具栏,将这些功能添加上,单击实现。
具体代码如下:
/// summary
/// 新建地图文档
/// /summary
/// vparam n ame=se nder/param
/// vparam n ame=e/param
private void OpenNewDocument_Click( object sender, EventArgs e)
{
IComma ndcomma nd = new Ope nN ewMapDocumeRm_c on trolsS yn chro nizer);
ITool tool = comma nd as ITool ;
comma nd.O nCreate(m_mapCo ntrol.Object);
comma nd.On Click();
}
/// summary
///加载数据
/// /summary
/// vparam n ame=se nder/param
/// vparam n ame=e/pa
文档评论(0)