GIS软件开发技术报告.docx

上传人:b****7 文档编号:25814841 上传时间:2023-06-15 格式:DOCX 页数:15 大小:365.55KB
下载 相关 举报
GIS软件开发技术报告.docx_第1页
第1页 / 共15页
GIS软件开发技术报告.docx_第2页
第2页 / 共15页
GIS软件开发技术报告.docx_第3页
第3页 / 共15页
GIS软件开发技术报告.docx_第4页
第4页 / 共15页
GIS软件开发技术报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

GIS软件开发技术报告.docx

《GIS软件开发技术报告.docx》由会员分享,可在线阅读,更多相关《GIS软件开发技术报告.docx(15页珍藏版)》请在冰豆网上搜索。

GIS软件开发技术报告.docx

GIS软件开发技术报告

Documentnumber:

BGCG-0857-BTDO-0089-2022

 

GIS软件开发技术报告

 

GIS软件开发技术课程

实习报告

 

院(系)名称:

XXXXXXX

班级名称:

XXXXX

学生姓名:

XXX

 

XX年X月

1项目内容

1.1项目目的

进一步了解C++开发的相关知识,掌握C++开发的基本技术,丰富C++开发的实战经验。

拓展对C#+AE的二次开发的认识,对接口的调用有一定的了解,其次也是为了增强自己的团队协作意识,了解软件开发的思考角度和主要流程。

1.2项目任务

实习一(底层开发):

解析MIF、MID文件并绘制;

提供图->属性、属性->图的检索;

符号系统符合MapInfo显示规范;

构建空间索引,优化图形绘制和空间检索效率;

实习二(二次开发):

SHP数据→MIF数据的格式转换

2GIS软件底层开发(详)

2

2.1技术路线

2.1.1需求分析

正文:

(宋体小四,首行缩进2字符,正文间行距固定为23磅)

1)任务概述:

本次GIS的底层开发任务是基于MFC的图形绘制和检索,要求在windows环境下实现地图的读取、显示、基础操作(放大、缩小)、添加属性信息、地图目标物索引的建立和查询,根据个人需求使用vs/vc,利用c++语言(可包括部分c语言)。

要求软件能够正常运行,并能够进一步做到优化和美化。

2)数据描述:

数据输入:

系统所针对的数据主要包括mif数据和mid数据两种类型,其中mif数据主要储存图形数据,mid数据存储属性数据。

数据输出:

mif数据以点、线、面、特殊符号为对象以相应颜色矢量图形呈现在窗体中,mid数据以文字形式呈现。

3)功能需求:

软件的功能模块划分为文件操作,建立索引、索引查询,符号绘制,图-属性、属性-图的检索。

几个模块均通过鼠标点击响应机制实现功能的操作和实现。

4)性能需求:

软件的性能尽量达到最优,包括数据的精确程度、响应时间、运行时间都尽可能地达到最优。

5)运行需求:

软件的运行在一般的电脑上均可正常运行,对于软件的运行错误及时检查和修复。

2.1.2项目设计

1)总体设计

根据软件的需求分析进行系统总体设计,包括有系统设计阶段和结构设计阶段。

其中系统设计阶段主要是对组成系统的文件、程序、文档等进行设计,确定系统的模块组成以及模块之间的相互关系。

结构设计则包括了功能结构、数据结构。

系统需求

根据系统的需求分析内容进行软件各个阶段和内容的设计。

主要功能流程图:

2)接口设计

用户接口

用户通过在PC机上打开软件(要求运行环境为windows系统),通过对软件功能的利用进行数据的交互处理。

外部接口

系统版本必须在Windows7及以上。

GisApp主应用程序必须安装在计算机上。

必须留有足够的硬盘空间。

内部接口

通过打开文件方式获取数据信息,进行数据操作。

软件的其他操作模块基于打开后显示的数据进行

3)运行设计

一般的处理流程是先打开数据,随后可使用其他功能模块

系统运行时有较友好的界面,基本能够实现用户的数据处理要求

系统响应时间应该符合用户的一般需求,响应时间都应该在10秒之内

2.1.3项目开发

1)软件定义:

要求实现的软件为基于底层开发的具有地理数据读取和检索功能的基础地理信息软件。

2)相关知识

Mif、mid数据读取:

MIF?

由文件头和数据段组成,第一部分“文件头”定义了版本信息、字符集、投影参数坐标类型与表结构。

第二部分为“数据段”,数据段包含MAPINFO?

定义的点、线、面、多义线、区域、圆弧、文本、矩形、圆角矩形和椭圆等实体。

MID属性数据文件按MIF中定义的属性结构分别描述了每个图形对象的属性内容。

网格索引:

格网型空间索引的基本思想是将研究区域用横竖线条划分大小相等或不等的格网,记录每一个格网所包含的空间实体。

当用户进行空间查询时,首先计算出用户查询对象所在格网,然后再在该网格中快速查询所选空间实体,这样一来就大大地加速了空间索引的查询速度。

四叉树索引:

四叉树索引的基本思想是将地理空间递归划分为不同层次的树结构。

它将已知范围的空间等分成四个相等的子空间,如此递归下去,直至树的层次达到一定深度或者满足某种要求后停止分割。

四叉树的结构比较简单,并且当空间数据对象分布比较均匀时,具有比较高的空间数据插入和查询效率。

放大:

图幅显示范围重新赋值和映射,目标重绘

符号库:

符号系统符合MapInfo显示规范。

3)项目计划:

编写软件设计方案→理解mif、mid数据组织结构→掌握C++/C语言关于读取数据的函数和语句→设计地图数据存储结构→建立符号库→绘制地图→建立索引类、索引管理类→初始化索引网格和网格动态数组→查询操作

4)项目实施:

根据软件设计书进行软件的编码与测试

5)项目交付:

第一阶段:

数据的读取和绘制

第二阶段:

软件成果汇总

2.2逻辑结构

程序的实现按照面向对象的算法进行设计,利用了类的封装、继承、多态性。

1)

地图数据存储的逻辑结构

2)网格索引类

3)

建立索引

4)索引查询

2.3GIS系统功能设计

2.3.1功能概述

要求软件能够解析MIF、MID文件并进行绘制;提供图->属性、属性->图的检索;其次构建空间索引,实现查询操作,优化图形绘制和空间检索效率;其中符号系统的设计要符合MapInfo显示规范。

2.3.2功能模块

1)打开文件显示

功能描述

用于打开文件夹读取文件内容(这里为mif、mid数据),并显示出来

性能

根据数据量的多少,数据打开和绘制的时间会由实际情况的不同而有所不同。

这里所用的数据显示时间不超过5秒

输入项目

在输入文件中选择要输入打开的mif、mia文件

输出项目

这里只要求数据以图形的形式显示出来,不要求进行其他的输出功能

算法

3SHGetPathFromIDList(pList,szPath)

ET与AE二次开发(略)

3

3.1技术路线

3.1.1需求分析

1)任务概述:

本次GIS的二次开发任务是基于C#与AE的数据格式转换,要求在windows环境下实现shp数据的读取、shp数据转换为mif数据。

2)数据描述:

数据输入:

输入shp数据

数据输出:

数据输出为mif数据格式

3)功能需求:

软件的功能要求实现shp数据的读取和shp数据转换为mif数据

4)性能需求:

软件的性能尽量达到最优,包括数据的精确程度、响应时间、运行时间都尽可能地达到最优。

5)运行需求:

软件的运行在一般的电脑上均可正常运行,对于软件的运行错误及时检查和修复。

3.1.2项目设计

1)设计思想:

二次开发使用vs开发环境加以实现,并使用了ESRIinterop程序集,它服务于被放置在.NET窗体上的、位于.NET窗体控件中的ArcGIS控件,这些程序集在托管的.NET代码和非托管的COM代码之间起了桥梁作用。

2)主要功能流程:

开始→读取数据→弹出对话框→选择shp文件→确定→保存→选择保存路径及输入mif文件名→确定→转化→结束

3)接口设计:

输入shp文件路径

OpenFileDialog()

stringfullpath=;//文件路径名

Shapepath=得到文件的路径名Shapename=不包括后缀的文件名

=fullpath;

输出mif文件路径

SaveFileDialog()

stringfullpath=;

Mifpath===fullpath;

格式转换

StreamWritermyWrite=newStreamWriter(myStream);//写文件

IWorkspacepWS=(fullpath,0)//打开工作空间

IFeatureClasspFeatureClass=(filename);//打开要素类IFeatureCursorpFeatureCursor=(null,false);//逐一要素访问

写文件头///////////

if(geotype==//点

elseif(geotype==//线

elseif(geotype==//面();

3.1.3项目开发

3.2逻辑结构

3.3GIS系统功能设计

3.3.1功能概述

输入shp文件路径,输出mif文件路径,进行格式转换

3.3.2功能模块

根据软件的需求分析进行系统总体设计,包括有系统设计阶段和结构设计阶段。

其中系统设计阶段主要是对组成系统的文件、程序、文档等进行设计,确定系统的模块组成以及模块之间的相互关系。

结构设计则包括了功能结构、数据结构。

1)读取shp文件

利用Iworkspace接口来对Gis中的数据库文件进行操作,因为shp文件是点集集合、数据集合和其索引文件的集合,所以需要通过专门的接口来实现。

2)写入mif数据

通过接口调用函数,判断读取信息类型,根据不同类型信息编辑数据

4总结

4

本次实习我主要操作了底层开发的内容,从读取mif数据开始逐渐从基础学起,通过网上查阅和反复询问,尝试和反复修改逐渐在编写程序的过程中理解其中的逻辑结构和语法,在实习的中段开始认识到一直困惑和为难的函数和语句的使用其实并非很关键,重要的是编程的思路要理清,对类的封装和调用之间的关系要清楚,而需要用到哪些函数或功能可以查阅相关资料和示例,理解之后转换为自己的内容即可。

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

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1