国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

第一章     系统总体设计
如前所述,“排水GIS地理信息系统”属于专业系统,与公众系统相比而言,公众GIS系统用户友好性是关键,而专业系统注重是专业只是的系统体现。专业系统设计时,必须考虑使用者的心理。比如:(1)操作简单。虽说是专业软件,但是主要使用对象是非计算机专业的人员操作,所以必须考虑软件的操作简洁、方便,并具有一定的趣味性,使用户对该系统有信心和兴趣;(2)在GIS原理和功能表达上,某些计算机术语应该通俗化,易于接受;(3)系统应该实时对用户的操作做出响应,尽量缩短等待时间等等。因此,系统必须从界面设计、辅助帮助、屏幕动画、信息的动感表现、操作风格等方面满足使用者的要求。
2.1系统功能要求
该系统要求的功能如下:
(1) 能够在地图上,分类、分区加载显示排水管线及各种管件的电子地图;
(2) 在地图上完成对各站点和各种管线信息的显示、修改、增加、删除;
(3) 实施辅助决策的管理功能系统实现[2]
2.2系统平台选择
2.2.1硬件平台
由于本系统是属于专业GIS系统,面对的用户是非计算机专业的用户使用,因此系统的硬件平台的要求不应该太高,越低越好。
2.2.2系统操作平台
考虑到目前使用的操作系统的广泛性,一般个人用户使用的是Microsoft的Windows系列,因此本系统操作平台选择Windows的NT以上的平台作为系统平台。测试平台:Windows 2003 Server.
2.2.3数据库平台
目前的数据库系统Oracle,Sybase,Informix,DB2,Sql Server等,各有千秋,根据本系统对数据量处理要求,无须采用大型数据库管理系统,因此本系统使用 Microsoft 的 SQL Server 2000。
2.3 系统开发模式和GIS组件选择
2.3.1开发模式选择
当前地理信息系统的开发模式主要有三种方法[1]
(1) 自主设计空间数据的数据结构和数据库,利用VC、VB、Delphi 等高级编程语言开发地理信息系统软件。
(2) 引进国外的先进的地理信息系统软件(如ARC/INFO),利用其提供的二次开发工具,结合自己的应用目标开发。
(3) 利用支持面向对象技术的高级语言和GIS 厂商提供的控件构成面向最终用户的可执行应用程序,称为嵌入式GIS。
其中,方法1 要求具备雄厚的科研力量和巨额的开发费用,并且必须随着研究的不断深入而不断更新系统,主要适用于开发商品化的地理信息系统平台软件,对开发一些小型应用系统而言,投入过高而不一定实用。
方法2 比较简便易行,主要的缺点是移植性差,并且受开发工具的限制,不能脱离原系统软件环境而独立运行;
方法3 特点是开发周期短,成本低,可以脱离大型商业GIS 软件平台独立运行,为不熟悉GIS 技术的团体和个人提供使用上的便利,是未来GIS 开发的重要方向。
2.3.2开发工具选择
Visual Studio .Net 2003是Microsoft 公司于2002年推出的符合工业标准的高级程序开发语言,它全面支持面向对象技术。Visual Studio .NET几乎包含了当前最流行的开发语言,它包括Visual Basic .NET 2003、Visual Studio .NET C#[3] 、 Visual C++ 2003、Visual J# 2003 等流行编程语言的全部的功能,其特点主要表现在:
(1) 面向对象的编程:.NET Framework 和C# 从一开始就完全是基于面向对象的。
(2) 优秀的设计:一个基础库,它是一个一种非常直观的方式设计出来的。
(3) 语言的无关性:在.NET 中,VB.NET,C#、J#和Managed C++等语言都可以编译成通用的中间语言(Intermediate Language),这说明,语言可以用以前没有的方式交互操作。
(4) 对动态Web页面的支持:ASP具有很大的灵活性,但效率不是很高,这是因为它使用了解释性脚本语言,但缺乏面向对象的设计,从而导致ASP代码比较凌乱。.NET使用了一种新的技术ASP.NET,它为Web页面提供了一种集成式的支持。使用ASP.NET,可以编译页面中的代码,这些代码还可以使用.NET高级语言来编写,例如:C#、J#或VB.NET。
(5) 高效的数据访问:一组.NET组件,总称为ADO.NET,提供了对关系数据库和各种数据源的高效访问。这些组件可以访问文件系统和目录。.NET内置了XML支持,可以处理非Windows平台导入导出的数据。
(6) 代码共享:.NET 引入了程序集的概念,替代了传统的DLL,可以完美无暇的修补代码在应用程序之间的共享方式,程序集有解决版本冲突的正式系统,程序集的不同版本可以同时存在。
(7) 增强的安全性:每个程序集还可以包含内置的安全信息,这些可以准确地指出谁或那种类型的用户或进程可以调用什么类的哪些方法,这样就可以非常准确地控制程序集的使用方式。
(8) 对安装没有任何影响:有两种类型的程序集,分别是共享程序集和私有程序集。共享程序集是可用于所有软件的公共库,私有程序集只用于某个软件。私有程序集功能完备,所以安装过程非常简单,没有注册表项,只有八相应的文件放在文件系统的相应文件夹中即可。
(9) Web服务的支持:.NET集成了对开发Web服务的完全支持,用户可以开发出任何类型的应用程序。
Visual Studio .Net 2003:.NET 附带了一个开发环境Visual Studio .NET ,它可以很好地利用C++、C#、J#、VB.NET和ASP.NET进行代码编写。Visual Studio .NET集成了Visual Studio 6.0 环境中各种语言专用的所有最佳性能。其中,Visual Studio C# 2003 (以下简称:C#)更是微软公司主推的新型语言,它是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。其重要性体现在:
(1) 它是专门为Microsoft的.NET Framework一起使用而设计的。
(2) 它是一种基于现代面向对象设计方法的语言,在设计它时,Microsoft还吸取了其他类似语言的经验,这些语言是20年来面向对象规则得到广泛应用后才开发出来的。
(3) 是使用.NET 的一种面向对象的新语言。
(4) 完全支持类和面向对象编程,包括接口和继承、虚函数和运算符重载的处理。
(5) 定义完整、一致的基本类型集。
(6) 对自动生成XML的文档说明的内置支持。
(7) 自动清理动态分配的内存。
(8) 可以用用户定义的特性来标记类或方法。这可以用于文档说明,对编译有一定的影响(例如:把方法标记成只在调试时编译)。
(9) 对.NET 基类库的完全访问权,并易于访问Windows API。
(10)可以使用指针和直接内存访问,但C# 语言可以在没有他们的条件下访问内存。
(11)以VB 的风格支持属性和事件。
(12)改变编译器选项,可以把程序编译为可执行文件或.NET 组件库,该组件库可以用于Active X(COM组件)相同的方式由其他代码调用。
(13)C# 可以用于编写ASP.NET 动态Web页面和XML Web服务。
  Microsoft在正式场合把C#描述为一种简单、现代、面向对象、类型非常安全、派生于C和C++的编程语言。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选,无论是高级的商业对象还是系统级的应用程序。
2.3.3 GIS控件选择
GIS(Geography Information System,简称:GIS系统)众多的厂商也推出了大量的面向各个行业的控件,在GIS 领域中,也有不少的控件可供选用,其代表为美国环境研究所(ESRI)推出的MapObjects2[4],MapInfo 公司推出的MapX 以及Intergraph 公司推出的Geomedia。MapObjects2 和MapX 在对地图的常用操作、图层控制、属性数据绑定、地图信息查询、地图符号方面功能相同,在实时事件跟踪(与GPS 集成)、控件数据分析等方面有一定的优势。MapObjects[5]与MapInfo的主要功能对比见表2-1。
MapObjects 是提供制图与空间分析功能的ActiveX 控件,包含了35 个可编程对象,可以用于大量开发框架中,包括流行的像VB、Delphi、Visual C++等之类的程序设计环境。
虽然MapObjects 不是为最终用户而是专门为开发人员提供的,但与其它的地理信息系统软件ARC/INFO、ArcView 、ArcCAD、SDE 等组成建立了地理信息系统的工业标准。
通常在MapObjects 中使用的都是Shapefile 格式的矢量图层,这是一种用非拓扑关系的形式来存储几何位置和地理特征的属性信息的格式,使用存储在同一工作区的5 个不同扩展名的文件来表示[6],分别是:
.shp――存储几何特征;
.shx――存储几何特征的索引;
.dbf――数据库文件,它存储特征的属性信息;
.sbn 和.sbx――存储特征的空间数据索引;
.ain 和.aih――这些文件存储数据库中或ArcViewGIS 中专题的属性表中被激活字段的索引。
 
表 2-1 MapObjects与MapInfo的主要功能对比
功能
MapObjects
MapX
显示地图数据格式
ArcView的SHP、ARC/INFO的
Coverage、SDE图层
MapInfo的数据格式
叠加栅格图层
对地图的常用操作
放大、缩小、漫游等
放大、缩小、漫游等
图层控制
增加、移走、设置当前层
增加、移走、设置当前层
属性数据绑定
地图信息查询方式
1、通过鼠标选取特征
1、通过鼠标选取特征
2、通过SQL查找特征
2、通过SQL查找特征
3、通过空间操作选取特性
3、通过空间操作选取特性
专题地图
较弱
GPS集成
用户绘图图层
生成/编辑地图对象
较弱
较弱
地图标注
地图符号化
较弱
较弱
分析功能
地理编码
可使用的开发语言
VC、VB、PowerBuilder、C++Builder、Delphi等
VC、VB、PowerBuilder、C++Builder、Delphi等
同时,MapObjects 还提供强大的地理信息查询与统计功能。支持通过ODBC 标准进行的外部数据库访问,可以用标准SQL 表达式进行特征选择和查询,可以通过数据绑定而把带有坐X、Y 标的数据库记录显示在地图中,可以按照数据的地理信息进行多种多样的统计与查询,MapObjects 还可以通过投影和坐标变换把实际地图中的地理信息数字化到电子地图中,如果和全球定位系统GPS 相结合,MapObjects 还可以用一个事件跟踪层来动态显示大面积上的移动对象。
除此之外,MapObjects还具有以下优势:
(1)小巧灵活,价格便宜。由于传统的GIS结构的封闭性,往往使得软件本身变得越来越大,不同系统的交互性差,系统地开发难度大。在保证功能的前提下,系统表现的小巧玲珑,而其价格仅是传统GIS开发工具的十分之一,甚至更少,这样用户便能以较好的性价比获得或开发GIS应用系统。
(2)无须专门GIS开发语言,直接嵌入MIS(Nanage Information System,管理信息系统)工具。MapObjects与C# 高效无缝的系统集成。在C# 编程环境下,MapObjects 控件与C# 的自带控件在使用上没有差别,而且带有大量VB 编写的代码,帮助文件齐备,易于查询。可见,MapObjects 和C# 的结合是快速开发面向最终用户的可执行程序的有效工具。
(3) 强大的GIS功能。新的GIS组件都是基于32位系统平台的,采用InProc直接调用形式,所以无论是管理大容量数据的能力,还是处理速度方面均不必传统的GIS逊色。小小的GIS组件完全能够提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询和分析能力。
综上所述,本系统采用GIS组件开发模式,即:使用C# + MapObjects的组件开发模式。组件开发模式的思想就是把GIS的各大功能模块划分成几个控件,每个控件完成不同的功能。各个控件之间及GIS控件与其他的非GIS控件之间,可以方便的通过可视化的软件开发工具(Visual Studio .NET 2003)集成起来,形成最终的GIS应用。形象地说,控件如同一堆各式各样的积木,它们分别实现不同的功能(包括GIS和非GIS功能),人们根据需要把实现各种功能的“积木”搭建起来,就构成了GIS应用系统。
posted on 2006-06-25 21:29  孤剑  阅读(879)  评论(0编辑  收藏  举报