WebGIS在馆藏空间信息可视化中的应用*
鲍劼, 朱世平
中国矿业大学图书馆 徐州 221116
摘要

针对目前高校图书馆文献获取困难的现状,在研究分析WebGIS技术在图书馆中应用的基础上,实现馆藏空间信息可视化。详细介绍系统的设计思路、功能划分、开源软件选择、开发平台构建等。最后,阐述空间数据表达方式、地图服务以及地图查询这些关键技术的实现过程。

关键词: WebGIS; 馆藏; 空间数据; 可视化
Application of WebGIS in Collection Spatial Information Visualization
Bao Jie, Zhu Shiping
China University of Mining and Technology Library, Xuzhou 221116, China
Abstract

Aiming at the present situation of university library document obtained difficultly, this paper realizes the visualization of collection spatial information based on WebGIS technology application in the library. It introduces the design idea, functional partitioning, choice of open source software, development platform and so on, and expounds the realization process of the key technologies of spatial data expression way, map service and map search.

Keyword: WebGIS; Collection; Spatial data; Visualization
1 引 言

当前,图书馆馆藏文献总量逐年递增,馆舍规模不断扩大。以中国矿业大学图书馆为例,每年新增纸质文献10万余册,截至2012年底,馆藏纸质文献总量已达196.8万册,随着文献总量的快速增加,2008年,馆舍面积由12 000平方米扩至48 500平方米。相比而言,其他985高校图书馆的文献总量规模更加巨大。在这样庞大的文献资源集聚地内,读者通过索书号获取图书文献需要花费较长时间。读者迫切希望在通过计算机检索到文献索书号的同时,也能够显示出文献在馆藏中的具体空间位置,以便快速获取文献。因此,馆藏空间信息可视化的实现是传统图书馆亟需解决的问题。

WebGIS是在Internet环境下对地理空间信息进行存储、处理、分析、显示、传输与应用的计算机系统[ 1]。通俗地讲,WebGIS能够实现空间数据的检索、查询、地图输出、编辑等基本功能,同时也是Internet上地理信息发布、共享及交流协作的基础[ 2]。WebGIS为实现空间数据管理、地理数据共享提供了最佳解决途径[ 3]。通过查阅WebGIS技术在图书馆中应用的相关资料发现,已有学者展开相应研究[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],但如何实现快速查询文献空间信息方面的工作几乎空白[ 15, 16]

笔者结合开源WebGIS技术,经过研究与设计开发,有效地实现了馆藏空间信息可视化系统。该系统不仅能够为读者提供地图服务功能,显示文献空间位置,方便读者快速获取文献;还能够为管理层提供空间分析功能,进行各种统计分析,为科学规划馆藏提供决策支持。系统的实现将传统的图书馆文献信息管理带到以空间信息管理为核心的可视化空间,大大提高了图书馆的服务质量。

2 系统构建

馆藏空间信息可视化系统要实现客户端读者通过浏览器获取所需文献的以地图形式显示的空间数据,以及文献、读者等的属性数据,以方便读者快速准确地获取文献。服务器端管理员能够安全高效地管理文献、读者等数据,特别是文献的空间数据,对空间位置变更的文献信息及时便捷地进行更新。

2.1 系统设计思路

馆藏空间信息可视化系统设计的整体思路如图1所示:

图1 系统设计思路

系统实现包含4部分工作:开发平台构建、数据库建立、GIS应用功能开发以及脚本语言编程实现。开发平台构建包括Web服务器、地图服务器、数据库服务器的搭建和相关开发软件的安装部署;数据库建立由属性数据和空间数据的采集、数据处理、数据入库、索引建立等一系列工作完成;GIS应用功能开发要实现查询、统计、分析、显示和决策支持等功能;最后整个系统由脚本语言编程实现。

2.2 系统功能设计

馆藏空间信息可视化系统主要实现以下功能:

(1)查询功能。读者可以通过文献的属性信息查询其所处的空间位置,并以地图形式显示;也可以根据文献相关信息查询对应的阅览室、书架等的具体地理位置;还可以点击图书馆平面图上感兴趣的空间对象进行空间漫游查询,以获得其相关信息。

(2)数据管理功能。对信息资源的空间数据和属性数据进行管理,包括对文献属性信息、读者属性信息、文献空间信息、书架空间布局、图书馆组织机构分布等矢量数据和栅格数据进行操作、更新、维护。

(3)地图显示功能。对图书馆空间可视化处理,以地图、图像、文字等形式显示文献的分布情况以及图书馆空间布局等,辅助读者定位资源并快速获取所需文献。同时提供地图的放大、缩小、漫游等地图操作功能。

(4)统计分析功能。对文献资源借阅情况、馆藏分布、机构设置等信息进行统计分析,发现各信息资源间的空间位置关系,并揭示读者所需的知识节点间的相邻位置关系,从而为科学规划馆藏提供决策支持。

系统划分为5个功能模块,即数据查询模块、地图操作模块、地图显示模块、统计分析模块、系统管理模块。各模块间的工作流程如图2所示:

图2 模块间的工作流程

读者通过数据查询模块、地图操作模块提交请求,包括获取文献的空间位置、放大地图等;管理员通过统计分析模块,统计各类数据,利用分析结果提供辅助决策;系统管理模块对数据库进行更新维护,为读者的请求提供数据保障;地图显示模块完成显示输出,将读者所需信息可视化,以地图形式呈现给读者。

2.3 开发平台构建

开发平台的构建主要分为服务器端和客户端两部分。服务器端的平台构建是整个平台构建的核心。利用Linux系统下的开源软件搭建基本应用框架,结合实际的WebGIS需求,使用脚本编程工具来构建开发平台。WebGIS体系由浏览器、应用服务器和数据库服务器三层体系构成。根据其三层体系结构, Web服务器、地图服务器和数据库服务器是开发平台构建的重点。

系统分别采用MapServer提供地图服务、PostgreSQL/PostGIS提供数据库服务、QGIS进行数据处理、Apache提供Web服务。这些软件的安装部署过程在此不做过多介绍,以下重点介绍地图服务器软件和数据库软件。

(1)地图服务器

地图服务器被安置在服务器端,和Web服务器建立通信连接,它是执行一项业务应用的组件。目前国际上开源WebGIS地图服务器有十几种,本文采用应用较为广泛的MapServer。MapServer是一个跨平台的网络地图服务软件包,来自美国明尼苏达大学和NASA的合作项目ForNet[ 17]。MapServer具有完成数据格式转换、地图投影转换、大数据量处理、地图绘制、地图图形格式、接口环境、兼容OGC互操作规范等功能,其工作流程如图3所示:

图3 MapServer 工作流程

客户端浏览器发送请求,Web服务器接受请求并调用MapServer CGI模块,CGI读取MapFile中的Template文件(HTML文件)进行处理,然后将处理结果返回给Web服务器,再由其传输回客户端。MapFile文件定义数据层的数据的相关属性。客户端浏览器不能直接表现矢量数据,因此,通过CGI程序可以把数据层的矢量数据转换为Web浏览器支持的GIF、JPEG、PNG等格式的文件,和栅格数据一起传输到客户端。

(2)PostgreSQL/PostGIS数据库

PostgreSQL由加利福尼亚州立大学伯克利分校研制,其功能齐全、特性丰富,提供多种客户端接口库,以满足不同开发者的需求。同其他开源数据库相比,PostgreSQL通过其扩展模块PostGIS支持空间数据的管理。PostgreSQL/PostGIS应用对象-关系数据模型,支持OGC地理要素规范中的所有类型[ 18],将地理空间要素作为对象来管理,能够对地理空间对象进行属性查询和空间分析,并且支持2D、3D、4D坐标。PostgreSQL/PostGIS能够很好地满足空间数据库选择准则,因此,本文使用PostgreSQL/PostGIS构建数据库服务器。

PostgreSQL具有多进程多用户的C/S体系结构,如图4所示:

图4 PostgreSQL体系结构

客户端发起连接请求,Postmaster确认该请求具有合法的访问权限后,会进行库(函数)调用,派生一个新的Postgres后端服务进程在客户端与数据库之间建立连接,实现数据库的各项通信操作。每一个客户端的连接请求都有一个唯一的Postgres进程,对数据库的任何操作都由客户端发起。此时,前端进程和后端服务将不再通过Postmaster而是直接进行通信,因此,Postmaster总是在运行,等待请求。

(3)开发平台的体系结构和工作流程

使用选择的开源软件构建WebGIS开发平台。开发平台采用B/S(浏览器/服务器)模式,逻辑上由浏览器、应用服务器、数据库服务器三层体系构成,如图5所示,其中应用服务器包含Web服务器和GIS服务器,数据库包含属性数据库和空间数据库。

图5 开发平台体系结构

服务器端的工作流程如下:

①Apache接收经浏览器发送的用户请求,如读者输入的文献参数,并将其和CGI程序请求传送给MapServer。

②MapServer CGI模块接收到Apache传来的参数后,在MapFile文件中查找数据库名称、相关表名称等信息,然后向PostgreSQL/PostGIS空间数据库索取空间信息和属性信息。

③PostgreSQL/PostGIS验证用户请求是否具有合法权限,初步过滤用户请求是否正确,下达数据检索请求,按照检索要求将空间数据与属性数据从数据库中取出,传送给MapServer进行后续处理。

④MapServer接收相关信息,利用CGI程序将文字属性信息转换成图像,再将空间信息转换成PNG图像,最后将文字图像叠加到几何图像中。

⑤MapServer读取指定模板,将相关资料、动态生成的空间信息图形嵌入模板,生成能够供客户端使用的HTML文件。之后,由Apache将结果返回客户端。

3 关键技术
3.1 空间数据表达方式

如何表达文献的空间位置是需要解决的关键问题。每本文献位于相应的书架上,每个书架位于图书馆特定的位置,其上有很多本文献。确切表达每本文献的空间位置是很困难的事情。本文设计的空间数据表达方式是:以面(Polygon)图层表示书架,每个面实体代表一个书架;文献属性表增加一个“position”(位置)字段,以文本类型记录文献所在的书架编号,如“1号书架”;文献的空间位置以文献所在书架的位置表示。查询某本文献时根据其“position”字段关联书架图层,将相应书架实体高亮显示。

根据以上空间数据表达方式的描述,设计两个数据表:文献信息表(Book)和书架信息表(Shelf),来完成文献的空间位置表达。Shelf表中设置一个字段类型为“geometry”的“geom”字段,描述以面实体的形式表示的书架空间位置。

PostgreSQL/PostGIS应用OpenGIS定义的元数据表SPATIAL_REF_SYS表和GEOMETRY_COLUMN表来记录空间数据,其中SPATIAL_REF_SYS表存储空间数据库中对坐标系统的描述和规定,GEOMETRY_COLUMN表存储数据库中地理空间表的信息。数据库中元数据表、地理空间表、文献信息表、书架信息表的关系如图6所示:

图6 元数据表、地理空间表、文献信息表、书架信息表的关系

SPATIAL_REF_SYS表中“SRID”字段标识空间参考系统,“AUTH_NAME”字段定义空间参考系统标准组织的名字,“SRTEXT”字段定义空间参考系统的WKT表达。GEOMETRY_COLUMN表中“F_TABLE_CATALOG”字段定义要素表目录,“F_TABLE_NAME”字段定义要素表名(本系统为Shelf表),“F_GEOMETRY_COLUMN”字段记录要素表中的要素几何性状的列名(本系统和Shelf表中的“geom”字段关联),“COORD_DIMENSION”字段定义空间维数(2维、3维或4维)。GEOMETRY_COLUMN表通过将“SRID”字段作为关键字对SPATIAL_REF_SYS表进行查询。Shelf表中的“descript”列和Book表中的“position”列关联,描述文献的地理空间位置。

文献的属性数据从图书馆现有的文献信息管理系统中获取,文献的地理位置数据和书架的属性数据需要到图书馆阅览室内部实地采集。扫描纸质图书馆建筑结构图进行空间数据的采集,将扫描的数字化地图(栅格格式)作为地图图层中的图像块进行存储,输入必要的控制点信息,进行配准和图像样式调整等处理,并在地图图像层的基础上进行空间数据采集。在显示扫描数字化图书馆建筑结构图条件下利用QGIS软件以人机交互的方式实地采集书架的空间位置数据(面实体)。数据采集处理完成后,由PostGIS提供的Loader程序完成数据的入库工作,实例如下:

﹩shp2pgsql shelfshape shelf gisdb > shelf.sql

﹩psql –d gisdb –f shelf.sql

同时为书架空间位置字段建立索引,命令如下:

CREATE INDEX shelfindex ON shelf USING GIST (geom)

3.2 地图服务

系统使用开源软件MapServer实现地图服务功能,过程如下:

(1)使用MapServer CGI模式开发WebGIS。

①配置MapFile。在MapFile文件中定义地图对象数据集“library”,包括地图的地理范围、显示地图的大小、地图图像格式;定义Web对象,指定HTML文件显示查询结果、创建地图图像存储位置、告之浏览器获取图像位置;定义Querymap对象,用来创建查询结果地图;定义Layer对象,指定系统的数据库类型(为“postgis”)、数据库参数、数据来源;定义Class对象,对该图层的显示效果进行定义;定义Label对象,表示该图层如何显示标注。

②设计初始化界面。在初始交互界面中嵌入指向CGI程序的链接(URL)。

③设计用户交互及交互界面。MapServer CGI 变量可以看作是CGI模块的接口,在URL或HTML文件中使用CGI变量和替换变量。

(2)实现地图最基本的操作功能,包括移动、放大和缩小。核心代码如下:

< tr>< td align="center">地图操作< / td>< / tr>

< tr>< td align="center">移动

< input type=radio name=zoomdir value=0

[zoomdir_0_check]>< / td>< / tr>

< tr>< td align="center">放大

< input type=radio name=zoomdir value=1

[zoomdir_1_check]>< / td>< / tr>

< tr>< td align="center" >缩小

< input type=radio name=zoomdir value=-1

[zoomdir_-1_check]>< / td>< / tr>

3.3 地图查询

系统利用MapServer提供的查询功能实现空间查询和属性查询。空间查询是基于空间位置的要素选择查询,属性查询是基于属性值的要素选择查询。MapServer广泛地使用模板来构建查询和结果表达以实现查询功能,需要在MapFile、模板文件和MapServer程序之间进行复杂的交互。MapServer提供了多种查询方式,这些查询方式以各自的方式使用模板文件。

查询主界面如图7所示:

图7 查询主界面

包括两种查询方式:属性字段查询和地图查询。地图查询是通过点击每个书架,以表格形式浏览该书架上文献的相关信息。属性字段查询要求读者选择输入文献的题名、责任者、主题词、ISBN号、索书号、出版社等相关信息,例如书名输入:“图书馆服务管理”,点击开始查询,系统即在Book表中查询与输入信息相匹配的记录,查询结果以表格形式显示给用户,如图8所示:

图8 属性字段查询结果

图8可以看到,《图书馆服务管理》这本书位于社科阅览室的2号书架上。读者现在更关心的是2号书架位于哪个位置,只须点击图中2号书架的超链接,系统即开始查询2号书架所在位置,将查询结果以地图形式显示给读者,如图9所示:

图9 地图显示查询结果

图9可以看到用红色标注的即为2号书架,读者根据此图能够快速找到2号书架,进而获取《图书馆服务管理》这本书。同时,图9中还提供了地图导航和地图操作的功能。

4 系统性能测试

笔者采用HP DL580G3服务器作为系统硬件平台,其基本配置为:3.16GHz CPU 双核,8GB内存,300GB存储,集成8MB显存,2个Intel10/100/1000Mbps网卡,4个64位I/O扩展槽。同时采集、处理数据10万条入库,进行系统性能测试,测试结果如表1所示:

表1 系统性能测试结果

操作响应时间查询分析响应时间≤ 12秒地图显示响应时间≤ 5秒地图放大、缩小、移动反应时间≤ 5秒100个用户并发请求响应时间≤ 6秒50个用户并发请求响应时间≤ 3秒 测试结果表明:系统运行稳定,客户端响应速度较快,系统性能良好。

5 结 语

本文结合当前传统图书馆获取文献资料困难的实际情况,运用WebGIS技术,对馆藏空间信息可视化系统的设计思路、功能划分、开发平台构建等进行详细设计,并给出关键技术的实现过程。该系统有助于读者快速获取文献,大大提高了图书馆的服务效率;其空间分析功能,能够为管理层提供各种统计分析数据,为科学规划馆藏提供决策支持。

在未来的研究开发工作中,需要进一步完善空间数据表达方式,精确文献空间定位,将更准确的文献资料空间信息提供给读者。同时,现有书目数据如何实现快速批量转化、系统空间分析功能如何完善、系统交互性如何加强、以及系统运行效率如何提高等问题都有待研究与实现。总之,馆藏空间信息可视化是未来馆藏信息管理的一个重要发展方向,其实现使图书馆的服务质量上升到一个新的高度。

参考文献
[1] 孟令奎, 史文中, 张鹏林. 网络地理信息系统原理与技术[M]. 北京: 科学出版社, 2005. (Meng Lingkui, Shi Wenzhong, Zhang Penglin. The Principle and Technology of Network Geographic Information System [M]. Beijing: Science Press, 2005. ) [本文引用:1]
[2] 邵晓艳. 网络地理信息系统的研究与实现[D]. 成都: 西南交通大学, 2006. (Shao Xiaoyan. Research and Implementation of Network Geographic Information System[D]. Chengdu: SouthWest Jiaotong University, 2006. ) [本文引用:1]
[3] 张书亮, 闾国年, 李秀梅, 等. 网络地理信息系统[M]. 北京: 科学出版社, 2007. (Zhang Shuliang, Lv Guonian, Li Xiumei, et al. Network Geographic Information System[M]. Beijing: Science Press, 2007. ) [本文引用:1]
[4] 沈健. 地理信息系统(GIS)服务在国外图书馆的实践与启示[J]. 图书情报工作, 2006, 506): 133-136. (Shen Jian. Application Practice and Enlightenment of GIS Service in Overseas Library[J]. Library and Information Service, 2006, 506): 133-136. ) [本文引用:1] [CJCR: 1.193]
[5] Frazer S L. Virginia Geographic Information System (GIS) Programs and Resources for Libraries[JOL]. Virginia Libraries, 2002, 483): 18-20. [2013-02-10]. http://scholar.lib.vt.eduejournalsVALibv48_n3frazer.html. [本文引用:1]
[6] Ancona D, Frew J, Janée G, et al. Accessing the Alexand ria Digital Library from Geographic Information Systems[C]. In: Proceedings of the 4th ACM/IEEE-CS Joint Conference on Digital Libraries. New York, NY, USA: ACM, 2004: 74-75. [本文引用:1]
[7] Xia J F. Library Space Management: A GIS Proposal[J]. Library Hi Tech, 2004, 224): 375-382. [本文引用:1]
[8] Xia J F. GIS in the Management of Library Pick-up Books[J]. Library Hi Tech, 2004, 222): 209-216. [本文引用:1]
[9] Weaver M, Delcambre L, Shapiro L, et al. A Digital GeoLibrary: Integrating Keywords and Place Names[C]. In: Proceedings of the 7th European Conference on Digital Libraries, Trondheim, Norway. 2003: 422-433. [本文引用:1]
[10] 余传明. 基于GIS的数字图书馆: 原理及应用[J]. 情报理论与实践, 2004, 276): 651-653. (Yu Chuanming. GIS-based Digital Library: Principle and Its Application[J]. Information Studies: Theory & Application, 2004, 276): 651-653. ) [本文引用:1]
[11] 杜慧敏. 面向空间信息分析的图书馆管理信息系统[J]. 情报科学, 2004, 229): 1103-1105. (Du Huimin. Library Management Information System Based on the Analysis of Spatial Information[J]. Information Science, 2004, 229): 1103-1105. ) [本文引用:1]
[12] 杜慧敏. 基于GIS的图书馆空间信息管理系统研究[J]. 图书情报知识, 20043): 55-56. (Du Huimin. Research on the Library Spatial Information Management System Based on GIS[J]. Knowledge of Library and Information Science, 20043): 55-56. ) [本文引用:1]
[13] 高飞. 基于GIS的馆藏空间地理信息系统设计与实现[J]. 情报杂志, 2006, 255): 47-49. (Gao Fei. The Design and Implementation of Book’s Spatial Information Management System Based on GIS[J]. Journal of Information, 2006, 255): 47-49. ) [本文引用:1]
[14] 高飞. 基于GIS的文献信息管理应用研究[J]. 图书情报工作, 2006, 506): 83-86. (Gao Fei. The Application Research on the Document Information Management Based on the Geographic Information System[J]. Library and Information Service, 2006, 506): 83-86. ) [本文引用:1] [CJCR: 1.193]
[15] 孙雷, 孙庆苏. 基于Web Service的WebGIS在高校图书馆中应用研究[J]. 现代情报, 2010, 306): 130-132. (Sun Lei, Sun Qingsu. The Application Research of WebGIS Based Web Service for University[J]. Modern Information, 2010, 306): 130-132. ) [本文引用:1]
[16] 刘丽. 基于WebGIS的区域图书馆共享系统设计[J]. 情报科学, 2011, 291): 1667-1670. (Liu Li. Design on the Regional Library Sharing System Based on WebGIS[J]. Information Science, 2011, 291): 1667-1670. ) [本文引用:1] [CJCR: 1.112]
[17] Conferences[EB/OL]. [2008-03-06]. http://mapserver.gis.umn.edu/community/conferences. [本文引用:1]
[18] PostgreSQL. PostgreSQL 8. 2. 7 Documentation[EB/OL]. [2008-03-06]. http://www.postgresql.org/docs/8.2/interactive/index.html. [本文引用:1]