基于GoogleMapsAPI的联机书目导航系统研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
・L I BRARY AND I N FORM A TI ON SERV ICE ・
基于G o ogleMa psAPI 的联机书目导航系统研究
周 群 吴蜀红
五邑大学图书馆 江门529020
〔摘要〕利用Google Map s AP I 技术将Google Map s 与图书馆联机书目检索系统相集成,通过联机书目导航系统理念的产生、设计、功能的实现及实时显示联机书目导航细节信息等步骤,构建出新的联机书目导航系统。在此基础上,对加拿大金士顿公共图书馆的Google Map s OPAC Mashup 联机书目导航系统的实践做一实例分析,从而期望能更好地促进此类系统的开发与应用。〔关键词〕Google Map s OPAC 联机书目导航系统〔分类号〕G250
A study of On li n e
B i bli ography Nav i ga ti on Syste m on Google M aps AP I Zhou Qun W u Shuhong
The L ibrary ofW uyi University,J iang men 529020
〔Abstract 〕I n order t o construct a ne w online bibli ography navigati on syste m,the paper uses Google Map AP I technol ogy t o integrate
Google Map s and online catal ogue retrieval syste m in libraries thr ough s ome step s:the e mergence of the concep t,design,functi on and real 2ti m e dis p lay the details of online bibli ographic navigati on syste m s and s o on .A t the sa me ti m e,it als o analyzes the Google M ap s OP AC M ashup system of KFP L in Canadian as a case s o as t o p r omote the devel opment and app licati on of si m ilar system s .
〔Keywords 〕Google Map s OP AC online bibli ography navigati on syste m
收稿日期:2009-03-18 修回日期:2009-05-10 本文起止页码:118-121 本文责任编辑:杜杏叶
1 引 言
Google Map s AP I (App licati on Pr ogramm ing Inter 2
faces 的简称)技术,是一种易于使用的JavaScrip t AP I,
能够将交互式地图直接嵌入到应用程序的web 页面内部,使其能够提供实时附加值的交互式地图日益流行于现代web 应用程序中。目前,最成功的是将
Craigslist 房产广告信息与Google Map s 集成而构建的Housing map s 系统(http://www .housing map s .co m )。该
系统提供了一个强大且友好的web 界面,通过Hous 2
ing map s 系统,购房者能够检索到所包括房屋价格、详
细地址及与购买者现所处位置的距离等信息
[1]
。同
时,一些房屋的3D 信息也会展现给购房者,通过这些聚类信息来帮助购房者进行决策。基于Housing map s 系统的启发,图书馆学者开始研究将Google Map s 与图书馆已有的web 应用程序相集成,以期达到更好地为读者服务,更高效地实现信息资源共享的目标。
2 联机书目导航系统的构建
2.1 构建理念的产生
所谓联机书目导航系统,就是将联机书目检索系统与Google Map s 相集成,读者在检索框输入图书的相关信息如“主题词/关键词”后,操作和查询结果以地图背景、专题图表等方式表现,向读者提供专业的描述地图和聚类的内容数据,直观地显示该书在全球的收藏状况,包括收藏地点及数量。经常使用书目联机检索系统的读者,都有着这样一种感觉,联机书目检索系统提供的只是一种形式检索,只能获得某部分的图书收藏地点,而无法准确获知该主题图书的收藏状况等信息。读者如需获取其他信息,必须借助Google 、Baidu 等搜索引擎来获取,这无形之中加大了读者利用该联机检索系统的难度。Google Map s 由于其提供全球地名等详细信息而风靡于网络,特别是Google Map s AP I 技术的开放,使得Google Map s 与web 应用程序集成变得简单。有了技术上的支持,再加上housing map s 系统的成功实践,图书馆图书联机书目导航系统的构建将
811
第53卷第21期 2009年11月
会变成现实,读者通过该系统能更好地获取图书信息资源,以实现图书馆之间信息资源共享。
2.2 联机书目导航系统的设计
首先,在联机书目检索系统web页面中导入Google Map s AP I库文件,在HT ML文件部分利用URL 地址在htt p:///intl/zh2CN/ap is/map s/ signup.ht m l处申请获取为这个URL地址工作的AP I 密钥;然后,利用Google Map s服务器提供的一段将密钥嵌入web程序的示例代码,将相关密钥代码更改之后写入该URL地址的web页面的HT ML代码中,这样就能在联机书目检索系统的web页面显示交互式的google地图。当然,地图的大小和形状都来自于相应的HT ML元素。页面加载事件Onload在网页加载时触发,通常用于加载并设置大小等属性的Google地图, Onunl oad事件在关闭网页时触发。在含有Google地图的网页中通常由Onunl oad事件调用Gunl oad()方法来减少浏览器内因内存泄漏而导致的崩溃问题的发生。其关键代码如下(本文示例代码均参考文献[2])[2]:
Google Map s AP I允许在嵌入W eb界面的Google Map s上加入一些包括平移与缩放工具、一个地图比例尺的不同控件。因此,可根据书目导航系统的需要,利用addContr ol()函数添加小型“平移/缩放”控件和可放置小型的可折叠的概括性地图的“概括地图”控件。其关键代码如下:
function load(){
if(G B r owserIs Compatible()){
var map=new G Map2(document.getElement2 ByI d("map"));
map.setCenter(new G Lat Lng(-41.5,-187.
5),5);
map.addContr ol(new GS mall M apContr ol());
map.addContr ol(new G Overview MapContr ol ());
}}
2.3 联机书目导航系统功能的实现
通过Google Map s AP I技术,将Google Map s集成到图书馆联机书目检索系统web应用程序中。一般来说,读者希望在该系统web导航界面输入相关信息如“主题词/关键词”后能显示所有收藏该信息图书的图书馆名称,点击地图上标记图书馆名称的特定标记,就会弹出一个显示详细信息的窗口。为实现该目的,需要在联机书目导航系统中集成一组服务器提供的标记。Google Map s AP I提供了一个称为G DownloadU rl()的方便的函数,可以通过这个函数以X ML形式下载数据并且在JavaScri p t代码中处理,这样把X ML数据转换成Google Map s标记就变得容易。A jax应用程序在其服务器端利用仅有的一个servlet,以X ML形式提供关于图书馆和包含该图书馆详细信息的数据,这个servlet基于它接收的查询参数返回的是X ML而不是HT ML数据。大致说来,这个servlet经由DAO对象实现书目数据库查询,并使用XStream技术把数据转换成X ML形式。然后,在客户端取回所需X ML标记列表,通过Google工具类—GXm l H ttp—使用A jax技术在地图上生成一组相应的标记。GXm lH ttp把一个查询发送到服务器端应用loadSites()函数取回一个X ML 文档,再调用p rocessSiteData()函数来处理站点数据。其关键代码如下:
function l oadSites(){
var request=GXm l H ttp.create();
request.open("GET","/map s/SiteD irectory? method=findA ll",true);
request.onreadystatechange=getCallback2 Functi on(request,p r ocessSiteData);
request.send(null);}
这个p r ocessSiteData()函数及相关联的dis p layS2 ite Markers()函数,都使用JavaScrip t DOM处理技术来提取关于图书馆的有用数据,并且在地图上创建相应的标记。
2.4 实时显示联机书目导航细节信息
一个基于Google Map s AP I的联机书目导航系统,当读者点击一个图书馆的名称时,要求弹出一个信息框来显示该图书馆的细节信息。然而,在真正应用程序中,经常存在太多的数据需要立即全部加载。为此,在构建联机书目导航系统的时候,使用A jax的相关技术,根据需要取回,并且根据特定要求实现相应的显示。
首先,在联机书导航系统标记中调用open Info W in2 dow()函数,添加并实现一个监听器。代码如下:
911