__________校园应用实例 一. 引言 ....................................................................................... 1 1. 选题背景及意义 ............................................................... 1 2.系统的总体设计 ................................................................ 3 2.1系统的总体目标 ........................................................ 3 2.2 系统的总体结构 ....................................................... 3 2.3系统设计 .................................................................... 5 2.4系统功能设计 ............................................................ 6 二、需求分析 .............................................................................. 9 1. 功能需求分析 .................................................................. 9 1.1 前台功能需求 ........................................................... 9 1.2 后台功能需求 ......................................................... 10 三. 开发及运行环境 ................................................................ 11 1 硬件、软件环境平台 ...................................................... 11 2 开发平台核心技术 .......................................................... 12 3 MVC系统架构 ................................................................... 14
一. 引言
1. 选题背景及意义
1
地理信息系统是一种采集、存储、管理、分析显示与应用地理信息的计算机系统,以数字化的形式反映地球空间现势和变迁的各种空间数据以及描述这些空间数据特征的属性,以模型化的方法来模拟地球空间对象的行为,在计算机软、硬件的支持下,以特定的格式支持输入/输出、存贮、显示以及进行地理空间信息查询、综合分析、辅助决策,为人们提供了处理地理信息最佳的方法和手段。校园在空间上是一个区域,其包含的信息大多具有空间属性。GIS是管理空间信息最有效的工具,在数字校园中引入GIS将使校园教学、行政、科研、生活等等相关的信息与空间位置建立紧密的联系,从而为人们提供最为直观的,深层次的信息交互。因此,GIS在数字校园框架中有不可替代的位置。具体的说,GIS在数字校园中的作用主要有:科学的组织和管理校园的空间数据,并可以与外界WebGIS进行数据交换;实现校园导航,通过互联网,为师生以及公共用户提供校园环境的空间信息浏览、定位、导航等服务。
传统校园地图[2]不仅在空间上不能给用户完整的展示,而且在查询和辨识上也有不足,基于WebGIS的校园电子地图能够很好的解决上述问题,与传统校园地图相比,校园电子地图具有以下特性和功能:
1)可操作性。WebGIS将GIS软件与Web服务器集成,利用通用的浏览器进行地理信息的发布,并使用通常免费的插件ActiveX或JavaApplet,从而大大地降低了终端客户的培训成本和技术负担。
2)开放性。WebGIS实现了在国家和世界范围内的分布式环境下,地理空间数据和地理信息处理资源的共享,它允许用户通过网络实时获取不同系统中的地理信息,而无需考虑数据和处理的起源地和规格,避免了冗余数据存储,是实现地理空间数据共享的一次深刻的技术革命。
3)通用性。利用多种技术的WebGIS能做到“一次编写,到处运行”。真正发挥跨平台的技术优势。WebGIS能够让GIS系统的用户通过网络不但能够访问本系统中分散在不同站点的数据和数据处理服务,同时还能维持系统的一致性以及平衡这种访问的网络负载。
2
4)信息共享性。WebGIS使用了通用的浏览器进行信息发布,用户就可以透明地访问WebGIS数据,在本机或某个服务器上进行分布式部件的动态组合和空间数据的协同处理与分析,实现远程异构数据的共享。
5)高效性。WebGIS能充分利用网络资源,将基础性、全局性的处理交由服务器执行,而对数据量较小的简单操作则由客户端直接完成。这种计算模式能灵活高效地寻求计算负荷和网络流量负载在服务器端和客户端的合理分配,是一种较理想的优化模式。
基于WebGIS技术建立的校园电子地图,能将多种校园信息服务以可视化的方式呈现,可以快速、准确的对校园各类信息进行查询和定位,有利于校园信息的有序化管理,将校园内外的生活、学习、商业信息与空间信息相结合。为管理和设计规划提供准确而周详的数据,极大的方便了师生的学习和生活。 2.系统的总体设计 2.1系统的总体目标
系统总体目标是以学校基础地理数据库为依据,以 GIS 技术的理论和方法为支撑,结合其他技术手段,建立基于 Web 技术的校园 GIS。该系统是以大比例尺数字地图为核心,通过对空间数据的分层管理实现对校园地理信息的浏览、查询、定位、量测、空间分析等功能;面向学校学生以及来学校参观、学习和工作的客人,提供网上电子地图服务,实现网站与客户之间的空间信息互动功能。 2.2 系统的总体结构
本系统拟使用 ESRI 公司推出的第二代网络地理信息系统平台 ArcIMS,属于基于中间件的 B/S 多层结构。ArcIMS 的组件构成主要有 Web 服务器、Servlet Engine、Servlet Connectors 和 Java Runtime Environment。
1) 客户端。
客户端是通过 HTTP 协议从服务器获取另一台计算机服务并接受服务器响应的一个计算机系统。客户端可以是 Internet Explorer/Netscape 浏览器,甚至是无线接受设备。
3
2)中间件。
中间件是协调应用程序和网络之间的软件。它使用了 Java Serv技术,合成了 GIS 应用模块,管理不同计算平台程序之间的交互。在ArcIMS
中,客户和服务器之间的通讯是通过 Web 浏览器、Ser-vlets、 Servlet Engine 、Servlet Connectors、ArcIMS应用服务连接器、应用服务器和ArcIMS Monitor 来实现的。
① Web 服务器接受客户端请求,并创建网页在客户端发布。
② Servlets 是能响应客户请求的一个 JAVA 程序,它最常的功能就是能够扩展Web服务器的功能使之动态地调整网页的内容。它还可以用来接受客户请求,获取并处理客户所需要的数据以及将结果返回客户端。Web 服务器正是通过Servlets与 ArcIMS 进行通信的,所以需要安装支持 Servlet 通信的组件,包括 Servlet En-gine 和 Servlet Connector。
③ ArcIMS 应用服务连接器是用来连接 Web 浏览器和 ArcIMS 应用服务器的。连接器主要有 ArcIMS Ser-vlet Connector、Java Connector、ColdFusion Connector、ActiveX Connector 和 . NET Link 五种。Servlet Connector是 ArcIMS 标准连接器。
④ ArcIMS 应用服务器是处理输入请求负载平衡的程序。它是 Java 语言编写的应用程序,并作为一种后台程序来运行。此外,它还能够提供跟踪地图服务及地图服务运行所在的 ArcIMS 空间服务器的目录。应用服务器正是在这种信息的基础上,合理分配空间服务器的。多个 Web 服务器可以同时和应用服务器进行通信。
⑤ ArcIMS Monitor 是一个与空间服务器一起在后台运行的程序,其作用是启动新的地图服务和空间服务器,并在空间服务器或计算机出现故障时重新启动地图服务。
3)服务器。
4
数据存储层提供了对其他桌面式 GIS应用系统的访问,便于对空间数据库进行管理。客户和服务器之间的连接一般是通过网络上经过编码的请求和响应来传递信息的。ArcIMS 空间服务器是接受处理客户请求并向客户返回地图的程序。服务器始终运行着,等待客户端向其发出请求。服务器端 包括ArcIMS空间服务器、数据服务器和 ArcIMS Tasker。ArcIMS 空间服务器是 ArcIMS 的主要处理中心。空间数据在 ArcIMS 的空间服务器中进行处理,并将输出的地图与数据返回给 Web 服务器。此外还有查询服务器允许进行数据库搜索、地理编码服务器进行地址匹配操作、提取服务器允许对数据进行剪裁提取子集。Tasker是整理服务器的清道夫。它根据用户在每个地图服务设置中指定的间隔时间,删除影像地图服务生成的临时文件。 2.3系统设计
1)确定存储方式
GIS系统数据一般包含两部分,即空间数据和属性数据,与一般数据库的不同主要在于空间数据的存储。空间数据包含地理实体的坐标信息、几何信息与实体间的空间关系,比一般信息处理中的数据更复杂,主要体现在数据类型多、数据输出形式多样化、数据量大等方面,并且在数据组织和管理方面具有非结构化的特征,面对这样的数据,主要的存储方式有:(1)文件存储方式;即将所有的空间数据和属性数据都存储在一个或多个文件中,优点是可以任意定义自己的文件格式,缺点是需要自己开发工具来实现数据的更新、查询、检索等操作,增加了数据管理的工作量。不能多用户并发操作数据,数据共享是最大的问题,二维GIS软件仍就哟本地文件形式存储和组织这些数据,如VegaLynx的adf格式,VRMap软件的vm格式,VPRLatfrom的vrp格式。(2)数据库存储方式:利用数据库存储所有空间数据和属性数据,解决了用文件存储空间数据时,对数据不能进行并发操作的缺点,但数据转换过程复杂。(3)存储虚拟化技术:
将系统中各种异构的存储设备映射为一个单一的存储资源,对用户来讲,完全透明。单个存储设备的容量、速度等物理特性对用户而言是不可见的,无论后台的物理存储采用什么进行对应,达到同时使用文件和关系数据库管理GIS数据。
5
2)数据库选择
关系型数据库则在数据库领域内处于主要地位。SQL Server2005在Windows Server 2003 Datacenter Edition上支持多达8个节点的集群;在Windows Server 2003 Enterprise Edition和Windows Server 2000 Datacenter Edition上支持4个节点集群;在Windows Server 2003 Advanced Edition上支持2节点集群,其安装过程和管理工具都支持集群。SQL Server2005 Enterprise Edition还通过堆多个服务器间的数据进行分区提供了提高可用性的能力。而且,其价格满足客户的高可用性要求。因此,采用SQL Server2005数据库。
3)开发工具选择
为了快捷构建GIS应用系统,几乎每个GIS平台开发商都提供了自己的二次开发语言。这些开发语言都有自己的语法和结构,只能在固定的开发商的软件环境下运行。用专门的开发语言卡发的程序,很难扩展和维护。固定的文件格式无法共享数据。GIS开发人员需要具有构建领域专用且易于使用的应用软件的能力,软件需将广泛应用的GIS技术与友好用户的经验结合起来。现阶段,组件技术已经广泛的被引入到GIS软件的设计与开发中,使得高效便捷的开发应用地理信息系统成为现实。Map Objects的开发难度比较低,因此采用Map Objects5进行WEB GIS 的开发。Map Objects5提供了对地图缩放和漫游,风格设置、图形属性编辑、拓扑处理、空间分析、三位建模与分析、三位可视化、布局打印等,以标准ActiveX组建的形式提供了GIS的全部功能,目前主流的开发语言如JAVA\\C#等都有可以采用。Map Objects的优点是专门面向二次开发者设计的全组件式开发平台,给予该平台开发的GIS应用软件可以独立奋发运行,并不依赖于任何其他软件,降低了应用软件的成本。 2.4系统功能设计
根据校园总体规划与发展布局,进一步扩展和完善空间数据基准。在这里,应考虑与现有国家坐标系统和国家新一代地心、三维、动态大地基准之间的联系与融合。
6
建立起有效的空间基础数据特别是框架数据更新机制,努力完善空间基础数据的分级、尺度和内容体系,实现数据形式的多样化、标准化,促使DOM、DEM、框架DLG以及三维数据成为未来空间数据的主导形式。
建立空间数据的分发和服务体系,使空间基础数据更好地为数字化校园、数字社区建设服务。通过建立良好的数据分发与服务模式,最大程度地发挥空间数据产品的应用潜力和效益。
发展先进实用的空间信息获取、更新、管理与应用服务技术支撑体系,为地理空间基础框架建设提供技术保障。数字化校园地理信息系统功能主要包括以下几个部分:
1) 校区导航
各层次的用户可以通过各种终端连接地理信息系统,在自己的权限范围内查询校内设施、道路的详细数据。系统提供搜索功能,让用户快速定位自己需要寻找的建筑或单位。
2) 管网管理
对各类管线进行快速方便的编辑、查询、定位与统计,制出标准的管线剖面图;具有故障定位、关阀方案、最佳路径、最短路径等管网分析功能;可实现管网的自动标注、自动捕点,自动提示安全间距,并能显示及打印标准的管线图与三维管线图。极大的简便工作人员的操作管理,同时能提供辅助决策支持。包括燃气管网管理;供水管网管理;电力输配管网系统。
(3) 环卫地理信息
环卫地理信息提供对厕所分布、垃圾箱分布、果壳箱分布、道路清扫面积、垃圾产量及清运等信息的地图查询及记录查询、分析、统计。同时提供对各类基础设施的损坏及维修进行记录、跟踪、分析、查询。
4) 路灯地理信息
7
路灯地理信息提供道路路灯、校区路灯分布信息的地图查询及记录查询、分析、统计。同时对路灯的巡视检查、损坏、维修、检修等信息进行记录、跟踪、查询。
5) 养护地理信息
养护地理信息提供对道路、桥梁、排水设施等基础设施的地图查询、跟踪、统计、查询。它可以对这些基础设施的抽查、检查、巡视、维修、施工质量、竣工验收等工作记录、统计、查询。
6) 绿化地理信息
绿化地理信息提供对绿地、行道树、古树名木等信息的地图查询、统计,对绿地、行道树、古树名木的修剪、施肥、巡视、移植的跟踪、统计及审批,同时对绿化养护设施的损坏、维修、质量检查的记录、统计。
7) 消防地理信息
消防地理信息提供对校内消防设施、设备、通道的地图查询、跟踪、统计、查询。同时对它们的损坏及维修进行记录、跟踪、分析、查询。
8) 土地利用规划管理
该系统是针对土地利用现状及规划数据的建库、管理、空间分析和图形输出而开发的一个应用系统,实现图形数据采集、编辑及各种属性数据的录入和修改。图形数据获取可通过数字化仪数字化或屏幕数字化,也可直接将其它格式的图形数据导入,系统提供了多种数据转换功能。
系统功能模块提供了对数据库中各种比例尺专题地图进行浏览和编辑的方法和手段,包括索引图、基本要素分布图等。地图显示功能有放大、缩小、漫游、地图刷新等。地图控制和综合信息查询功能有信息查询、图层控制、距离量测、信息定位、区域查询、空间分析、专题图显示、预测决策数据提供等。以下分别进行叙述。
8
清水河校区地理信息系统功能设计地图浏览功能电子地图控制功能综合信息查询功能其它功能地空距最图地鹰全图间信信信地离资短放图眼图层数息息息图面源路大漫地显控据查查定打积配径缩游图示制更看询位印测送查小功功功功新功功功功量功询功能能能能功能能能能功能功能能能能建筑物内部信息查看功能
图2-1 基于WebGIS数字化校园地理信息系统功能需求
二、需求分析
1. 功能需求分析 1.1 前台功能需求
前台功能需求即普通用户对系统的功能需求。
1、地点查询。根据用户输入的关键字查询地点,通过点击地点在地图上显示该地点的详细信息。
2、活动查询。根据用户查询的活动,计算出活动各个地点之间的路线。主要是最短路径查询。
3、专题查询。根据用户查询的专题,在地图上标识出专题的所有地点。 4、生活信息查询和展示。在地图上显示出商铺、活动信息,通过点击查看该地点的详细信息,包括图片,联系方式以及评论等。
5、信息分类列表。将校园信息根据功能分类作成列表,方便用户点击查找。 9
1.2 后台功能需求
后台功能需求即管理员对系统的功能需求。
1、地标管理。后台管理员能对地标信息进行增、删、改、查等操作。 2、生活信息管理。后台管理员能对生活信息进行增、删、改、查等操作。 3、地图管理。后台管理员能对地图进行更新等操作。
4、用户管理。后台管理员能对用户信息进行查、禁封、解除禁封等操作。 5、数据生成。后台管理员能对地标数据进行批量生成管理。 2.系统性能需求
可理解性:网站地图,目录结构和索引。
用户界面及其友好性:包括产品宣传的易得性、信息的本土化、业务规则说明、沟通渠道、下载设施、色彩的协调性、响应时间的一致性。
性能:系统在响应时间、存储空间和加载能力等方面应该能满足客户需求。电子商务系统要求展开7*24小时的服务。
可靠性:提供7*24小时的无故障服务,要求系统可以连续正常工作,即系统应具有一定的错误识别能力,错误处理能力,具有一定的健壮性,最好有双机备份机制。
可维护性:易于故障的排除和日常管理操作方便。
可重用性:系统的组成模块或者成分应该是结构化和参数化的,并且按照适当的方式存档。注意反映领域知识、领域模块。
灵活性和可扩充性:系统的规模可能会随着时间的推移进一步扩大,应满足系统生存期间的额外的要求。
10
可跟踪性:识别出原来的需求与被规范的功能之间关系的可能性,便于系统升级。
三. 开发及运行环境
1 硬件、软件环境平台
本系统在LAMP环境下开发,系统可运行于LAMP(linux-apache-mysql-php)和WAMP(windows-apache-mysql-php)环境下。
(1)开发环境
表1 开发环境
Table 1 Server-side operating environment 硬件环境
CPU 内存 硬盘 (2)运行环境 服务器端
表2 服务器端运行环境
Table2 Server-side operating environment 硬件环境
CPU
Intel(R) Xeon(R)
以上
Web服务器
内存
2BG以上
数据库系统 操作系统
软件环境
Windows NT/2003/XP VISta、UNIX、Linux
Apache
Mysql5.0
Intel(R) Core(TM)2
1GB 160G
操作系统 Web服务器 数据库系统 PHP版本
软件环境
Linux/ubuntu 11.04
Apache2.2.8
Mysql5.0 PHP5.0
11
硬盘 4OG以上 PHP版本 PHP5.0
2 开发平台核心技术
主要采用的技术有php、mysql、JavaScript、ajax、Google地图API等。 (1)PHP技术
PHP(Personal Home Page)[5]是一种跨平台的服务器端嵌入式脚本语言。它最初是由Rasmus Lerdorf于1994年开发的。早期的版本,提供了访客留言本、访客计数器等简单功能。随后,在第二版中增加了对mSQL的支持。自此奠定了PHP在动态网页开发上的影响力,并迅速在Internet上流传开来[6]。截止2009年5月,在Google中搜索“php”,你将获得95亿条搜索记录,可见php在当今互联网时代是非常流行的。PHP的源代码完全公开,在Open Source意识抬头的今天,它更是这方面的中流砥柱。随着新函数库的不断加入,使PHP无论在Unix、Linux或是Win32的平台上都可以有更多新的功能。如今,PHP已更新至6.0版。在语法方面,PHP混合了C、Java、Perl以及PHP以前版本的优点。它相当于Script与CGI的结合语言,但是其执行将效率却比CGI更好,程序编写也比HTML更便利且更富有弹性,程序的安全性及保密性也比Script好。在函数支持方面,PHP几乎覆盖了Web应用的各个方面,其中最有特色的是数据库函数,使用PHP完成一个含有数据库功能的网页非常简单,而PHP支持的数据库也非常丰富,目前包括:MySQL、Oracle、Sybase、mSQL、Informix等。 (2)Mysql技术
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购[7]。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。其特点是:核心线程使用完全多线程,这意味着它能很容易地利用多CPU;支持PHP、C、C++、Eiffel 、Java、Perl、Python和TCL API等客户工具和API;可运行在不同的操作系统平台上;利用一个优化的一遍扫描多重联结,可快速地进行联结;全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、 MAX()和MIN();一个非常灵活且安
12
全的权限和口令系统,并且它允许基于主机的认证;MYSQL特有的SHOW命令可用来检索数据库、表和索引的信息,EXPLAIN命令可用来解释优化器如何执行一个查询[8]。
(3)JavaScript技术
JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了ECMA Script标准[9]。 (4)Ajax技术
Ajax是当今最为热门的浏览器端开发技术之一[10], 简单的来说, 它是众多成熟技术的集合。Ajax 的出现,为传统开发技术带来全新的应用方式, 极大地提高了用户对程序的操作体验。Ajax使用XMLHttpRequest对象以异步的方式与服务器通信,从服务器获取需要的数据后在页面上进行局部刷新[11]。AJAX技术给B/S模式下的客户端和服务器交互方式带来了巨大的变化,使得B/S模式的前后台交互方式也与C/S模式一样,成为API级别的交互[12]。 (5)Google地图API
Google地图API是由美国Google公司免费开放的电子地图应用接口。灵活提供了flash、JavaScript等多种形式的接口,可以满足网站类(B/S结构)和非网站类(C/S结构)的应用。以HTTP为基础的WebAPI的普及,也降低了应用服务整合的门坎,地图应用接口可以非常简单把地图集成到网站中,使基于互联网地图应用的开发变得十分的简单。同时,谷歌地图 API 是一项免费的服务,任何非盈利性网站均可使用。 (6)jQuery技术
jQuery[13]是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库,能够兼容众多浏览器而且支持CSS3。jQuery使用户能更方便地处理
13
HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。有许多成熟的插件可供选择。 3 MVC系统架构
MVC是Xerox PARC在20世纪80年代为编程语言Smalltalk—80发明的一种软件设计模式,至今已被广泛使用。MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C 则是控制器,使用MVC 的目的是将M 和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,比如一批统计数据你可以分别用柱状图、饼图来表示,C 存在的目的则是确保M和V的同步,一但M 改变,V 应该同步更新,在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。在MVC 模式中,由于按层把系统分开,那么就能更好的实现开发中的分工,分层后更有利于组件的重用,如控制层可独立成一个能用的组件,视图层也可做成通用的操作界面。
如图1,视图V对应表现层,本层只负责数据的显示和样式渲染;控制器C只负责视图V和模型M的逻辑交互(消息传递);模型M根据控制器C的交付指令完成数据运算、数据存储、返回运算结果。三层各施其职,互不干涉,易于系统开发、维护和扩展。
14
15
因篇幅问题不能全部显示,请点此查看更多更全内容