C#.Net平台下制图系统的底层开发

2010-09-15 03:39台晓楠
武汉纺织大学学报 2010年4期
关键词:图层制图组件

台晓楠,杨 懿

(武汉大学 资源与环境科学学院,湖北 武汉 430079)

C#.Net平台下制图系统的底层开发

台晓楠,杨 懿

(武汉大学 资源与环境科学学院,湖北 武汉 430079)

简要分析制图系统所应具备的基本系统功能,并采用组件式构架的思想,在C#.N ET环境下组织计算机制图系统的底层开发,实现计算机制图系统的基本功能。对系统开发的核心问题如系统框架设计,系统结构设计等内容进行探讨。系统采用组件式开发的思想,与当今主流的软件开发方式接轨。

计算机制图系统;组件式;底层开发;C#.N ET

1 计算机制图系统

计算机制图又称机助地图制图或数字地图制图,以传统的制图原理为基础,以计算机及一些外围设备为工具,进行地图信息的采集,存储,处理和显示的过程。计算机制图包括两个核心处理,即将原始地图表达去符号化形成存储在计算机中的地图数据,与将地图数据符号化,输出机制地图的过程。计算机制图系统则是支持计算机制图的软件系统。

计算机制图系统的数据处理的基本过程如图1所示:

图1 制图系统数据处理过程

计算机制图系统所应具有的功能如下:

(1)数据接收功能。一个良好的制图系统应当具有数据开放性,既能够处理内部格式的文件,也要能接收外部通用交换格式的文件,如DXF文件。

(2)图形编辑功能。制图系统应当具有交互式图形屏幕绘制功能,图形的添加,选中,删除功能。

(3)符号配置功能。制图系统应具有完善的符号库,能够进行多种地图表示符号的绘制,并支持用户自定义符号。

(4)地图输出功能。能够将制成的地图以软拷贝和硬拷贝的方式输出,即屏幕显示或者保存数据打印输出。此外,地图的屏幕显示功能中还应当支持简单的地图放大,缩小,漫游等功能,便于用户对地图进行检查。

2 系统的实现过程

2.1 系统功能模块设计

根据第一部分阐述的制图系统所应具备的功能,设计本制图系统的功能如图2所示:

图2 制图系统功能结构图

2.2 系统框架设计

系统开发采用组件式的开发思想,所以在搭建系统主程序之前需要首先编写系统中所要用到的组件,有地图控件CMyControl,各个功能按钮控件Tools或者Commands(见图3)。

图3 系统框架设计图

Application是系统主程序所在的工程,其中将会调用到如图所示7个命名空间中的元素。其中CSGL是针对C#提供的OpenGL组件库,提供强大的二维和三维图形的绘制函数接口,System是开发环境本身所封装的命名空间,Janus是第三方组件库,用于设计友好的用户界面。

此外,本系统自定义了4个命名空间,提供系统搭建所需要的组件和类。ControlLibrary是控件库,内有显示二维图形和三维图形的两个控件。ClassLibrary是系统的类库,包含系统所要用到的类型。InterfaceLibrary中定义了系统所提供的接口,Tools则是系统工具按钮组件库,内部封装了执行各种地图功能所需要的按钮,有针对二维图形和三维图形的两套按钮。

程序开发过程中,首先编写ControlLibrary,InterfaceLibrary,ClassLibrary,Tools这四个工程,并生成动态链接文件后,在主程序中添加相应的.dll文件和引用就可以直接使用这些工程中定义的接口和方法。

2.3 系统类结构设计

根据制图数据的分层组织的关系,设计出地图类,管理地图中的各图层信息;图层类,管理图层中的所有图形要素;以及点,线,面类。具体的类的结构和关系如图4所示。

图4 系统类结构设计图

2.4 符号库设计

计算机地图制图的两个核心的处理过程是去符号化与符号化的过程。以铁路为例,在纸质地图中,铁路通常表示为黑白相间的双线路,而在去符号化过程中,则只提取铁路的中轴线数据存储在地图数据库中。地图数据输入制图系统中的一个主要目的就是符号化,通过制图系统提供的符号库,将符号配置到地图数据中,并将制图结果输出。

通常,符号库有矢量绘图法和栅格图法。矢量绘图指在指定位置处用程序临时绘制符号,栅格图法则是将预先存储的栅格符号绘制在指定位置处。而矢量绘图法又分为直接信息法,和间接信息法。直接信息法存储绘制图形的坐标点序列,并同时记录抬笔与落笔的动作,所有的符号都可以通过一段程序来绘制。间接信息法只存储图形的关键参数,但是每一个符号都必须编写对应的符号绘制程序。

本次系统开发中,使用直接信息法在地图控件中直接绘制矢量符号,地图符号绘制结果如图5所示。而在符号选择框中,则使用栅格图像显示作为示意图,以提高程序运行效率。符号选择对话框如图6所示。

图5 符号绘制结果

图6 系统符号选择窗口

2.5 数据存储方式设计

本系统采用SQL Server2000关系型数据库来存储地图的几何图形数据,虽然几何图形数据具有坐标串长度不确定的特点,不便于使用传统关系数据库进行存储,但是目前随着关系数据库的发展,通过二进制流的形式,可以将变长的坐标串作为二进制块写入数据库,这样的结构便于数据的存取控制。

其中地图文件是一张表,表内记录此地图文档中包含的所有的图层的基本类型及符号显示信息。每个图层分别对应一张表,图层表的名称是图层名。所以必须保证地图数据库中不同图层具有不同的名称。

地图表的具体字段如下:

L a y e r N a m e L a y e r I n d e x L a y e r T y p e S y m b o l I D S y m b o l C o l o r

LayerName表示图层的名称,在数据库中以图层的名称作为区别不同图层的ID号。LayerIndex表示在地图中图层的显示顺序,即图层的上下位置顺序。LayerType表示图层的类型,分为POINT点图层,LINE线图层,POLYGON多边形图层,和ANNOTATION注记层。SymbolID表示不同的图层显示的符号的编号。SymbolColor记录地图中每一图层显示的颜色,在系统用户使用系统为地图数据符号化和设计符号颜色后,将相关信息记录在图层中。

图层表的表名为该图层的名称,表内记录此图层中包含的全部要素的要素的系统ID号,要素类型和坐标串序列。

I D T Y P E C O O R D I N A T E

2.6 系统界面设计

本系统使用介绍JanusWinforms Controls插件,这是由Janus Systems 公司开发的一套控件组合,可以创建出具有Outlook风格的应用程序界面,并可以实现主程序界面中各部分位置的自由拖拽,隐藏与停靠。提供对Visual Studio Developer最新的样式控制。所有的控制将使.NET应用程序更加强大,并易于控制编程,节省开发时间。

3 系统的特点

相比于传统基于VC6的制图系统底层开发方式,本系统采用组件化开发的方法,具有以下特点:

(1)较好的开放性

组件化的思想是指将复杂的系统功能按照对象、功能、应用等层次分解为可以互操作和自我管理的组件。通过编译产生二进制文件,可以在多种开发平台和语言环境中使用。

(2)良好的可扩展性

系统的扩展性表现在系统组成的组件功能上,通过对组件的扩展就可以实现更多的功能,而不需要对系统本身进行过多的修改。

(3)便于多个程序员的分工合作

将系统分成不同的模块,各个模块之间相互独立。可以将不同的模块分配给不同的程序员编写。

4 总结

本系统从底层实现了制图系统的基本功能,并结合了当今软件开发的主流技术如组件技术,空间数据库技术等内容,能够较好的管理图形数据和系统制图功能。在系统实现中,首先编写所需要的组件库,然后在主系统中加载,这样的开发方法就系统开发本身而言,虽然开发任务较重,但是便于功能的组合和进一步扩展。

[1] 艾自兴, 龙毅. 计算机地图制图[M]. 武汉:武汉大学出版社, 2005.

[2] 宋关福,钟耳顺. 组件式地理信息系统研究与开发[J]. 信息技术, 2006, 30(1).

[3] Martin L. Shoemaker. UML实战教程[M]. 北京: 清华大学出版社, 2006.

The Base Development of Cartography System Using C#.NET

TAI Xiao-nan, YANG Yi

(School of Resource and Environment, Wuhan University, Wuhan Hubei 430079, China)

An innovative method of developing cartography system from base is introduced using the C#.NET platform and COM technique. This paper gives details pertaining to the problems involving the system framework and structure design, as well as the result of this development. This method is proved to be successful and effective.

cartography system; base development; COM technique; C#.NET

TP391.41

A

1009-5160(2010)04-0038-03

台晓楠(1689-),女,研究方向:地理信息系统.

猜你喜欢
图层制图组件
无人机智能巡检在光伏电站组件诊断中的应用
无声手枪如何消音?
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
解密照片合成利器图层混合模式
小明巡山记
二向反射模型在土地覆被制图中的应用
跟我学添加真实的光照效果
风起新一代光伏组件膜层:SSG纳米自清洁膜层
工程制图课程教学改革探析