辽宁省城镇地籍管理信息系统详细设计.docx
《辽宁省城镇地籍管理信息系统详细设计.docx》由会员分享,可在线阅读,更多相关《辽宁省城镇地籍管理信息系统详细设计.docx(55页珍藏版)》请在冰豆网上搜索。
辽宁省城镇地籍管理信息系统详细设计
地星土地调查信息系统
软件说明书
北京地星伟业数码科技有限公司
二○○八年四月
第一章引言
1.1读者对象
本说明书是地星土地调查信息系统系列文档的一个,其读者对象是对相关业务的技术和总体方案作出决策的管理人员、对本《软件说明书》进行评审和确认的有关业务,技术人员、参加编码阶段工作的全体软件工程师、参加系统调试的全体软件工程师、参加试运行的全体软件工程师以及其他有权需要调用本文档的人员。
《地星土地调查信息系统软件说明书》的全部内容属于本公司的商业机密,应严格控制业务范围,项目开发阶段由项目软件开发组负责管理,由本公司负责管理,未经公司同意,不得以任何介质(文本,软盘,硬盘,光盘)等形式持有本文档的部分或全部内容。
1.2标准和规范
1、数据库建设标准和规范
◆土地利用分类,国土资源部
◆土地利用现状数据库标准,国土资源部
◆第二次全国土地调查技术规程,国土资源部
◆中华人民共和国行政区划代码,GB/T2260
◆1:
5001:
10001:
2000地形图图式,GB1480—93
◆1:
500、1:
1000和1:
2000地形图要素分类与代码,GB1480—93
◆基础地理信息要素分类与代码,GB/T13923-2006
◆国家基本比例尺地形图分幅和编号,GB/T13989-92
◆地球空间数据交换格式,GB/T17798-1999
◆国土资源信息核心元数据标准,TD/T1016-2003
2、软件开发标准和规范
◆国土资源信息系统软件开发规范,国土资源部信息中心
◆全国国土资源信息网络系统建设规范(试行),国土资源部信息中心
3、文档编写标准
◆国家软件设计系统列标准(GB8567—88)
1.3文档综述
第一章引言介绍了读者对象和参考的标准和规范等。
第二章对系统进行了概述,介绍了系统的总体层次结构和逻辑结构,并阐述了系统所采用的技术路线和开发环境。
第三章概述了一下用户界面设计,阐述了用户界面设计的原则,并给出了用户界面设计的基本式样。
第四章是功能体系设计,概略介绍了系统的图形模块、属性模块等的模块结构图,也列出了个模块内部的子模块和子程序的清单。
第五章数据库设计。
明确了数据库设计的原则,并阐述了本系统数据库的构成。
第六章接口设计,介绍了系统的用户接口、内部接口和外部接口等。
第七章运行设计,介绍了系统性能、时间特性和安全性等。
第八章系统出错处理设计。
说明了系统的出错信息,以及相应的补救措施等。
第九章权限管理设计介绍了权限管理控制中心的设计。
第二章系统结构与技术
2.1系统整体结构概述
地星土地调查信息系统总体上分为三个主要功能系统,属性管理子系统、图形信息子系统以及权限管理子系统。
在子系统基础上包含数据转换子模块、数据处理与建库子模块、数据质量检查子模块、查询分析子模块、系统依靠单点登陆形成了紧耦合的关系,同时子系统依靠低层的统一数据库支持和权限管理亦具有松散耦合之关系,都可以对运行。
2.1.1总体层次结构
从纵向上分析,系统的总体架构由下至上依次为:
基础设施层、数据库层、基础平台层和应用系统层。
1、基础设施层
本层主要包括网络、服务器、存储系统、配套系统软件和机房等。
2、数据库层
数据库层以土地利用数据库为主要内容,依托数据库管理和GIS技术,按照统一的标准,通过网络,实现数据的交换,形成各级数据库组织、管理、维护和更新体系。
3、基础平台层
基础平台层集成系统通用底层的功能模块,主要包括安全服务、数据库管理等。
4、应用系统层
应用系统层主要集成土地利用业务应用功能,地星土地调查信息系统主要对业务所需的各种土地利用空间数据进行录入、编辑、查询、分析、统计等。
2.1.2总体逻辑结构
系统软件总体逻辑结构由4个部分构成:
数据库建设和管理模块、属性报表模块、变更模块、和接口模块。
1、数据库建设和管理模块
本模块是系统数据的存贮中心,系统利用关系型数据库Oracle(或Access)统一对存储数据采用集中式管理,分布式应用的方式。
所有需要集中和共享的数据统一存放于关系数据库中。
2、属性报表模块
属性报表模块基于属性数据库,可以进行数据查询、统计和分析等功能。
可以输出第二次全国土地调查技术规程所要求各种统计报表
3、变更模块
根据外业调查的实际情况,进行图形和属性的变更。
4、接口模块
系统提供标准的VCT2.0和SHAPE等数据转化格式。
系统不直接支持的文件格式,可以使用第三方软件转化成系统支持格式即可使用。
2.2系统关键技术
2.2.1.NETFramework
.NET框架由四部分组成,公共语言运行时,类库,编程语言和ASP.NET环境。
.NET框架有三个目的。
第一个目的是使得Windows应用程序更加可靠并提供给应用程序更大的安全性。
第二个目的是简化Web应用程序和服务的开发,不仅是传统意义上的Web应用程序和服务,还包括移动设备上的Web应用程序和服务。
第三个目的是提供独立的一套库,使其可用于多种语言。
.NET框架提供创建传统的Windows应用程序的能力,并提供了更多的增强特性,比如安全性,在应用程序中增加数字签名等。
.NET还提供了与传统的COM组件交互的能力,它提供了一个包装类,让使用COM组件的用户感觉上和使用.NET类库一样。
一般来说在转换后的数据类型和原始COM组件中的类型一样。
所有的引入的类型都附加到一个名字空间上,比如在ArcEngine里就是ESRI.ArcGIS名字空间。
所有的COM内部类都转换为受控类,受控类的名字在原来基础上增加“Class”,比如Point类转化为PointClass。
在属性,事件等方面.NET都给予了适当的转化使.NET开发人员可以容易的引入COM组件,进行开发。
ESRI特别的自己转换了COM组件到一套.NET类库,供开发人员使用,从而节省了很多不必要的麻烦。
.NET框架提供了公共语言运行时和一套基础类库和多种开发语言。
多种开发语言共享基础类库,并运行在相同的运行时之上,采用了C#语言进行开发。
C#是一种现代的、面向对象(从底层开始)安全型语言。
C#具有.NET的全部特性,在语法上具有c++的简捷明了,但是比C++提供更多的安全措施。
2.2.2ArcEngine
ArcEngine是ArcGIS划时代的一个产品,主要原因在于其提供了完美的组件框架和控件框架,为二次开发者提供了随心所欲的开发利器。
对于ArcEngine,ESRI定位于提供嵌入式的GIS组件,能用来在一个组织内建立应用,为用户提供有针对性的GIS功能,为每个用户的特定需求提供有针对性的GIS功能实现的基础。
实际上,根据研究,发现ArcEngine应用远不止这些。
理论上讲,通过ArcEngine完全实现ArcInfo桌面应用系统甚至ArcGISServer。
2.2.3ArcSDE
ArcSDE采用大型数据库来存储空间数据,它维护的元数据表记录了存贮在数据库中所有图层的信息。
业务表存贮的每一条记录表示一个空间要素(简单多部件要素),并有一个唯一的识别符。
该唯一的识别符存贮在业务表的几何列中。
业务表的名字就是图层的名字。
通过该唯一的识别符,每一个记录与要素表或称为F表建立相应的记录关联。
F表在一个二进制列中物理地存贮要素的几何特征。
除空Shape外,业务表和F表之间存在一个1对1的关系。
要素在业务表中有记录,但在F表中没有对应的要素。
数据库中最后一个有关图层的表是空间索引表或称S表。
S 表存贮着格网单元和图层的封装边界。
每一格网单元在F表中都有一个条目。
凡是封装边界与该格网有重叠的要素都与之一同存贮,即S表中存贮着要素标识码,以提供从业务表或F表到S表的1对多的关系。
ArcSDE客户端和服务器同时工作来递交和显示从一个查询中获取的记录数据,这种处理类型叫一个异步流模式。
客户端发送一个初始请求给ArcSDE。
该请求被转换成一个由ArcSDE转发给RDBMS的SQL语句。
RDBMS分析该语句并从数据库中提取数据记录。
当RDBMS选择出数据记录时,它发送结果给ArcSDE。
ArcSDE服务器将任何一个空间信息转换为可读的格式并将该信息发送给客户端。
信息实时地以小而连续的缓冲区的形式发送给客户端。
在客户端接收这些缓冲区数据的同时,就开始处理并显示它们。
客户端不会等到服务器处理完查询后才显示数据记录。
客户端和服务端同时工作来处理查询是为了减少查询时间。
客户端通常比服务端慢,因此,当客户端已经显示当前的结果并准备好接收更多的数据时,服务器才向其发送数据缓冲区记录。
这可以使服务器有空闲处理其它的客户端发送来的查询。
每个缓冲区在客户端将其处理完毕后就开始释放,以免客户端的内存被占用。
在客户端,数据记录不会驻留内存,因此,如果已释放的数据记录再次被请求,查询就需要再执行一次。
在ArcSDE客户端的大部分操作都将导致数据库的查询操作。
经常访问的图层可以驻留在服务器的内存高速缓冲区内,这样可加快重复查询。
这是因为访问内存中的数据要比从磁盘上读数据快得多。
ArcSDE服务器发送SQL语句给RDBMS处理。
RDBMS解析该语句并验证所需的表是否存在。
解析语句时可确定从数据库中获取数据的最佳方法。
一旦完成一个语句解析,RDBMS就从数据库中获取数据。
如果一个表经常要被访问,或最近已被访问过,数据记录则驻留在RDBMS的内存缓冲区中。
这就减少了从磁盘上获取数据所花费的时间。
再有,减少数据库查询和数据库在网络上的传输时间是非常重要的。
ArcSDE从客户端和服务器两个方面来解决这两个问题,ArcSDE客户端通过应用属性或空间约束来减少返回数据的数量,ArcSDE服务器通过一个空间索引来减少空间信息的查询时间。
ArcSDE客户端向RDBMS和ArcSDE服务器提出请求信息,如果数据库文件没有驻留在服务器内存的高速缓冲区,那么数据库文件获取记录的操作将导致较高的磁盘输入/输出操作。
客户端可以利用数据请求的条件约束来减少检索的数据量和从服务器返回的数据。
约束可以是对属性数据,也可以对空间数据,它可以通过SQL语句的WHERE 子句来实现。
ArcSDE生成一个SQL语句并将它传递给RDBMS。
空间约束条件被称为空间过滤器。
空间查询操作的WHERE子句限定了返回的数据必须是在图层中指定区域的空间信息。
数据库管理员对属性项建立索引可加快对属性数据的查询。
ArcSDE服务器建立空间索引来加快对空间数据的查询。
2.2.4Geodatabase数据模型
Geodatabase是ESRI在其新一代GIS平台软件ArcGIS8中引入的一种全新的空间数据模型。
Geodatabase采用一种开放的结构将空间数据(包括:
矢量、栅格、影像、三维地形等)及其相关的属性数据统一存放在工业标准的数据库管理系统DBMS中。
空间要素类(FeatureClass),如:
河流、国界、宗地、电杆等,对应了DBMS中的表,而具体的一个要素(Feature)则是表中的一条记录。
具有共同空间参考的一组空间要素类又可以组成更大的结构,称为要素数据集合(FeatureDataSet)。
除了空间要素类以外,Geodatabase中还可以建立关系类、几何网络、定义要素子类型、值域及规则等。
所有的要素类均可以借助通用的CASE工具(如:
Visio、RationalRose等)进行模型定义和扩展。
在ArcGIS8.3版中,Geodatabase引入了拓扑关系规则。
如前所述,在Geodatabase中可以定义关系和规则。
拓扑关系规则即是新增加的一类。
拓扑关系规则可作用于同一要素数据集中的不同要素类或者同一要素类中的不同要素。
用户可以指定空间数据必须满足的拓扑关系约束,譬如:
要素之间的相邻关系、连接关系、覆盖关系、相交关系、重叠关系等。
所有这些关系都对应相应的规则。
在城市规划应用中,两个相邻的地块之间不能有“飞地”,可以有一条对应的规则:
“相邻多边形间不能存在间隙”。
再如,当以河流作为国界时,河流(线状)与国界线必须一致,可用规则:
“线必须被多边形边线覆盖”。
用户通过选择若干规则的组合构成对空间数据必须满足的拓扑关系的灵活指定。
为了检查和维护空间数据的拓扑关系正确性,在ArcGISDesktop中给出了一组(编辑)工具,用于对空间数据根据用户指定的拓扑关系规则进行编辑,并帮助用户及时发现可能存在的拓扑关系错误。
Geodatabase中并不实际保存拓扑关系。
不同要素类之间的公共点、公共边等要素是在拓扑编辑过程中动态地检测到的。
例如,我们选择一条线并对其进行编辑,此时Geodatabase将自动检测到与此线要素具有公共几何元素的所有其它要素,当修改该线要素时,系统自动对所有的公共边和公共点进行维护,以保持其应有的拓扑关系。
这种实现方式的好处在于,可以局部、有选择的维护拓扑关系,效率很高。
拓扑规则可以定义在要素类的不同要素之间,也可以定义在两个或多个要素类之间。
比较典型的拓扑规则例子是:
多边形不能相互重叠(两个建设用地地块间不可相互重叠);点必须被多边形边线覆盖(建设用地的界址点必须在用地红线上);不能有悬挂结点(用地红线不能有多余的出头线段);两个线层不能相交(地下管线和道路中心线不能有交叉点),等等。
在ArcGIS8.3版中,将给出总共25条可供选用的拓扑规则。
在以后发布的版本中,还会给出更多的规则。
对一个要素数据集,可以定义一个拓扑关系类,在拓扑关系类中,指定若干希望数据满足的拓扑关系规则。
当然,通过修改拓扑关系类的定义,就能够方便地改变对拓扑关系约束的要求。
这给空间数据管理带来了很大的灵活性。
2.2.5WebServices
WebServices是一种分布计算技术(像CORBA,RMI,EJB等等),容许研发人员创建客户端/服务端应用。
WebService使用HTTP传输消息(像服务请求和响应),使用标准的XML语言,具有平台无关性和语言无关性。
在研发本系统的过程中,我们利用WebServices技术,为B/S和C/S模式之间,提供了统一的权限、日志、组织机构的二次开发接口,方便用户扩展软件功能。
这些二次开发接口是:
◆GetAllMethodData
◆GetAllMethodDataByType
◆GetAllMethodDataType
◆GetAppRNUser
◆GetApplicationData
◆GetApplicationMethodData
◆GetApplicationName
◆GetApplicationObjectMethodData
◆GetApplicationUrl
◆GetDR2User
◆GetLog
◆GetLoginInformation
◆GetLoginTime
◆GetLoginTokenNumber
◆GetModDesc
◆GetModVersion
◆GetObjectMethod
◆GetObjectName
◆GetObjectRNMethod
◆GetObjectRNUser
◆GetTableCondition
◆GetTableField
◆GetTime
◆GetUserCSName
◆GetUserDeptID
2.3系统开发运行环境
2.3.1系统开发环境
系统基于.NET环境,采用C#、ASP语言进行开发,空间数据功能模块采用ArcGISEngine嵌入式组件进行开发。
系统后台数据库采用Oracle10g,利用ADO.NET实现系统与后台数据库的通讯,ArcSDE作为空间数据库引擎实现空间数据的访问。
其开发环境如下图所示:
2.3.2系统运行环境
操作系统:
Windows2000server或Windows2000professional
数据库系统:
Oracle10g或Access2000以上
GIS控件:
ArcGIS Engine
空间数据引擎:
ArcSDEforOracle
应用服务器:
IIS
空间服务器:
JRE1.3.0_02/ServletExec;
浏览器:
IE5.0及其以上版本
第三章用户界面设计
用户界面(UI:
UserInterface)是用户和系统之间进行交流的一个纽带。
是人-机之间的信息界面。
好的程序界面应该是用户无需去阅读操作手册就知道该如何使用的界面。
3.1基本原则
用户界面设计的三大原则是:
置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。
在三大原则的约束下,本系统将按照如下一些原则进行界面的设计:
1、界面清晰明了。
允许用户定制界面。
2、一致性原则。
要有统一的字体符号、统一的色调、统一的提示用词、窗口在统一的位置、按钮也在窗口的相同的位置等。
有一些很常用的功能,如添加、修改、删除、查看,在本系统的不同模块中,这些功能应该有相同的操作方法。
3、提示信息必须恰当且规范。
提示信息必须容易理解并且口径统一,提示信息还应该出现在一致的位置,如弹出提示窗口、窗口的上方或窗口的下方。
对用户的称呼应该统一。
4、有清楚的错误提示。
误操作后,系统提供有针对性的提示。
5、色彩与内容。
整体软件不超过5个色系,尽量少用红色、绿色。
近似的颜色表示近似的意思。
3.2设计概述
系统主要基于C/S模式,采用传统的Windows界面风格进行设计,界面主线以菜单栏、工具栏、图形操作窗口、图层控制浮动框等主要部分构成。
同时,为了方便用户的操作在适当的地方还设计有右键弹出菜单、快捷键等辅助功能。
主界面包括菜单栏、数据列表、图形操作工具条、浮动窗口、图形显示/操作窗口等四部分构成。
其具体设计如下图所示。
主菜单按文件、编辑、视图、选择、工具、窗口、和帮助等部分进行组织。
其中,视图控制各个窗口的显示和图形缩放等功能,工具里控制各个工具栏的显示,关于图形的操作大部分在各个工具栏内。
有关图形显示编辑的界面应包括三大部分:
图形显示操作工具条、图层控制框、图形显示区域。
其具体设计如下图所示。
图3-2 图形显示/编辑界面
空间分析和专题图制作的界面应设计成向导式的风格,一步步引导用户进行处理。
界面应友好地设计成只让用户选择用什么数据、做什么操作、结果存放到哪里等参数,系统即可自动完成相应的操作。
具体设计界面如下图所示。
第四章功能体系设计
4.1模块开发结构
在设计开发层次,将整个系统分业务办公模块(属性管理)、GIS管理应用模块(图形管理)和权限控制中心(权限控制)。
具体功能体系如下图所示:
4.2图形管理
图形管理子系统具体处理系统中对各种图形和图像的操作,包括图形的建库、管理、操作和分析等。
图形模块采用ArcGISEngine作为开发工具。
ArcGISEngine提供了一套应用于ArcGISDesktop应用框架之外的嵌入式ArcGIS组件。
使用ArcGISEngine,并且在.NET环境下使用简单的接口获取任意GIS功能的组合来构建专门的GIS应用解决方案。
通过ArcSDE这一中间件技术,进行图形数据的入库和管理工作。
ArcSDE是一个位于ArcGIS其它软件产品和关系型数据库之间的数据服务器,是一个在多种关系型数据库管理系统中管理地理信息的高级空间数据服务器。
图形管理子系统按照功能和结构的不同,又分为系统初始化、图像纠正、数据编辑、数据检查、图件制作、符号管理、坐标转换、图数互查、版本管理和权限管理等子模块。
图形部分各子模块名称标识符和模块概述见下表:
编号
模块名称
模块标识符
模块概述
1
系统初试化
sysInit
该模块要求用户输入坐标范围、高程范围、比例尺等相关基本信息后,自动建立给定数据库结构的空间数据库结构,包括图层类型和相关属性表结构,同时建立应有的拓扑规则如宗地中的界址点在界址线上。
2
图像纠正
geoReference
该模块实现栅格图层的纠正功能,通过用户分别在原始图像和图形上获取坐标,采用厄密多项式纠正方法进行纠正,纠正结果可以保存为纠正坐标点文件,以备检查。
此外,此模块还要完成标准图幅和任意图幅的绘制,以方便对图像的纠正。
方法是通过用户输入经纬坐标或在图上直接选取来取得绘制的图幅范围,绘制结果可以是临时的也可以是永久的存放在shp文件或geoDB中的图层。
3
数据编辑
dataEdit
该模块为此系统中比较重要的模块。
它为其他编辑所需要的基本框架编辑模块提供了绘图的基本的功能,比如捕捉和多种形式的选择等,可以让用户设置具体的捕捉容限、捕捉图层,捕捉位置(节点、线、终点、草图节点等等)。
数据的编辑基本是先建立草图、然后在此草图上绘制,完成后提交到空间数据库。
此模块提供了基本的数据编辑比如绘制点、线、面,数据的剪裁、移动删除等。
具体如下:
1)点要素编辑功能:
各种注释(英文、汉字、阿拉伯数字等)。
各种专用符号、子图、图案以及圆、弧的编辑。
提供编辑修改注释及其控制点坐标的手段,可增加、删除、移动、复制、陈列复制各注释点,修改各类注释信息,包括字串大小、角度、字体、字号、符号等,同时还可修改控制点的坐标方向。
2)线要素编辑功能:
各种线型(如点划线、省界、国界、公路、铁路、河堤、水坎等)编辑。
完成对线段进行连接、组合、增加、删除、修改、剪裁、提取、平滑、移位、陈列复制、改向、旋转、产生平行线等;编辑修改指定线的坐标点数据、线型及参数,经过算法处理产生各种线型。
线图元自动剪断、结点自动平差。
3)面要素编辑功能:
编辑图形中以颜色或花纹图案填充的区域(面元),包括面元的建立,删除、合并、分割、复制、面元的属性编辑及边界编辑功能。
其中建立面元功能应允许用户交互式选择组成物边界弧段、定义面元属性(颜色、填充花纹等);属性编辑可以进行匹配查询、修改、删除、定位等;边界编辑可对任意区域的边界进行剪断、连接、移动、删除、添加、光滑以及对弧段上的任意点进行移动、删除、添加等操作。
面图元的分割与弥合、注记的生成与编辑。
4)完备的错误检查与定位,其中包括:
拓扑错误、重叠错误、自相交错误、悬挂弧段错误等检查与错误定位,并能进行错误自动更正。
5)提供要素长度量算、面积计算功能。
4
数据检查
dataCheck
对空间数据和属性数据的一致性、正确性、有效性、合理性进行检查,并提供检查报告,指出错误的地方,并提供修改方案。
主要包括:
1)各种要素编码规则的正确性检查(是否存在按非法的编码规则进行编码,编码的长度与排列顺序是否按规则进行);
2)地块编号错误的情况检查,如是否重号。
自动产生的地号,尤其要做这项检查。
3)图形一致性检查(重点检查图形的拓扑关系),如是否封闭、是否重叠、交叉等。
必须具有灵活的拓扑规则构建功能,并用拓扑规则检查图形。
4)图形与属性的一致性查询:
图形与属性必须齐全,能查询出有图形无属性、有属性无图形的数据。
属性注销时,与属性相关的图形必须注销;图形注销时,与图形相关的属性必须注销。
注销的数据存储在历史库中。
无论是属性数据先产生,还是图形数据先产生,在行政服务中心窗口收件前,必须完成图形与属性的关联。
5)属性面积与计算面积的检查,可以通过设置一个误差容限与检查工具的计算值进行比较,列出超过误差容限的数据,供核对与修改。
5
图件制作
thematicGen
此模块负责提供强大的制图功能,包括统计图(单要素统计图、多要素统计图),统计图以柱状图、饼状图、散点图、趋势图等多种形式进行表达;专题图(包括图名、图例、比例尺、图框、图层要素等多种内容)。
6
符号管理
serSymbol
此模块负责为各个图层或者各个图层的子类型设置符号,可以对符号进行定制包括符号的颜色