系统的设计目标
传统的成图系统经过多年的发展,已经形成了一套比较完整的理论和技术体系。但是,GIS技术的飞速发展和广泛应用,对成图系统提出了更高的要求,ComGIS技术的出现为传统的成图系统向以GIS为核心的成图系统的转变提供了一个较为理想的开发手段。与传统的成图系统相相比较,以GIS为核心的成图系统在设计上需要达到以下目标:
(1) 以GIS为核心,面向GIS。这就要求在系统的开发过程中充分考虑GIS对数据的要求,解决当前成图系统数据进入GIS所存在的问题。以GIS为核心是整个系统设计的灵魂和精华所在。
(2) 兼顾制图与GIS的双重需求。在满足GIS需要的同时,还必须考虑到制图对于数据表达的要求,其核心是实体的符号化表达。
(3) 开放性设计。不同地区、不同的GIS对数据的要求千差万别,这就要求成图系统具有较大的灵活性和定制性,以不变应万变。可定制性的内容应包括实体代码、实体属性、实体分层等。
(4) 对空间数据库的支持。近几年来,基于大型关系型数据库(如Oracle,SQL Sever等)的空间数据库技术在GIS工程建设中得到了广泛的应用,如何直接基于空间数据库进行数据的存储、管理、维护与更新是急需解决的问题之一。
(5) 多源数据集成。当前,成图系统的电子数据格式和GIS的数据格式很多,成图系统如果以对这些数据格式有着良好的支持,这会大大降低数据入库的难度,解决GIS工程建设中的数据瓶颈问题。
(6) 操作简便,符合作业人员的作业习惯。面向GIS进行成图系统,工作量的增加是不可避免的。以GIS为核心的成图系统必须提供高效简便的操作方式,以提高作业效率。
(7) 标准化与规范化。
在我所设计的这个绘图应用程序中,将实现一般绘图应用程序所具有的绝大多数功能,并提供一些额外的辅助功能。具体而言,其实现的功能主要包括如下方面。
1.绘制图元
能够绘制的图元包括:
l 直线图元,或者称为线段图元,允许用户使用鼠标选择直线顶点绘制。
l 椭圆图元,允许用户拖动鼠标控制椭圆的外接矩形,来进行绘制。也可以绘制圆形。
l 三角形图元,允许用户拖动鼠标控制三角形的顶点位置,来绘制合适的三角形。
l 矩形图元,使用鼠标控制矩形的位置和外形。
l 填充形状,使用当前画刷填充形状内部。
l 绘制文本,在用户选定的位置输出用户指定的文本。
l 绘图操作都能够被撤消或恢复。
2.改变绘制条件
在绘制图元时,还要能够改变绘制条件,包括:
l 改变线条颜色,使用户可以绘制出不同颜色的图元。
l 改变线条类型,使用户可以绘制出不同线型的图元。
l 改变填充方式,使用户可以选择不同的填充方式。
3.图形修改
图形就是图元的集合,在图形绘制过程中,不可避免地要对
图形进行修改。本应用程序所能完成的修改功能包括:
l 删除被选图元,其中被选图元可以是一个或多个。
l 拷贝被选图元,其中被选图元可以是一个或多个,该操作可以被撤消或恢复。
l 剪切被选图元,其中被选图元可以是一个或多个,该操作可以被撤消或恢复。
l 平移被选图元,其中被选图元可以是一个或多个,该操作可以被撤消或恢复。
l 恢复最近操作。
l 撤消最近操作。
4.图元修改
在绘制图元时,常常需要对其进行修改,例如改变其颜色、
尺寸等。在程序中能够实现的图元修改功能包括:
l 改变被选图元颜色。
l 改变被选图元线型。
l 改变被选图元形状。
5.绘图辅助
进行绘图操作时,为用户提供一些辅助功能是十分必要的。
我的应用程序里所能提供的辅助功能包括:
l 辅助网络,帮助用户进行定位绘制。
l 禁止斜线,使用户只绘制垂直或水平直线。
6.文件持久性
对于应用程序来说文件的持久性十分重要,如果不能保证这
一点,应用程序就很难说有什么存在价值。本应用程序能够完成图形文件的保存、打开、打印,而且提供了将所绘图形转换为位图存储的功能。
7.数据库支持
本程序能够创建一个图形文件数据库,该数据库可以被用于管线网络编辑软
件。在编辑软件中通过调用图形数据库中的记录,就可以将网络图载入程序中,实际上这个程序就是用于修改目的的。
根据应用程序所实现的功能,我把程序划分为以下模块:基本图元绘制、图形修改、图元修改、辅助功能、图形文件存取和图形数据库支持等。可以看出,划分这些模块的规则主要是根据功能之间的联系。具有类似流程的功能可以被划分为一个模块。例如,虽然每个绘制功能不同,但其实现的方法都是通过响应鼠标消息进行绘制的,因此被划分为一个模块进行实现(见图3-1)。