【摘要】介紹了運用兩種不同類型百度地圖API制作蘇州圖書館分館導(dǎo)航圖,表明圖書館網(wǎng)站可以利用Mashup技術(shù),增加網(wǎng)站的功能性、交互性、關(guān)聯(lián)性、有用性以及趣味性。
【關(guān)鍵詞】百度地圖API;Mashup;導(dǎo)航圖
1.Mashup概念
Mashup中文通常翻譯為“混搭”,是一個web應(yīng)用,它利用兩個及以上數(shù)據(jù)源的內(nèi)容創(chuàng)建出一個新的整合應(yīng)用服務(wù)。術(shù)語“混搭”源自流行音樂,在流行音樂中,人們無縫地把一首歌曲的音樂和另一首歌曲的聲軌結(jié)合起來,從而把它們混編在一起創(chuàng)作出新的音樂作品。
Mashup的快速發(fā)展得益于越來越多的互聯(lián)網(wǎng)公司開放其數(shù)據(jù)源,允許用戶免費使用其提供的API。目前典型應(yīng)用有地圖Mashup、圖片和視頻Mashup、搜索和購物Mashup、新聞Mashup和微博Mashup等。國內(nèi)圖書館網(wǎng)站典型的Mashup應(yīng)用是搜索Mashup,將多個數(shù)據(jù)庫檢索整合到一起形成新的“一站式”檢索服務(wù),圖1展示了目前全球流行的混搭按類型分布的情況。
2.Mashup體系架構(gòu)
Mashup應(yīng)用主要涉及3方面的內(nèi)容:API/內(nèi)容提供者,Mashup站點以及客戶端的Web瀏覽器,其體系架構(gòu)如圖2所示。來自客戶端瀏覽器的請求傳向Mashup站點所在的Web服務(wù)器,請求的頁面包括HTML和JavaScript。JavaScript調(diào)用一個或多個API內(nèi)容提供者提供的服務(wù)后,按照該Mashup的邏輯進(jìn)行內(nèi)容組合。
3.Mashup與圖書館網(wǎng)站
目前國內(nèi)絕大多數(shù)圖書館網(wǎng)站還是基于傳統(tǒng)web 1.0技術(shù)建站,web2.0應(yīng)用極少,功能性和關(guān)聯(lián)性較弱,缺乏交互性和趣味性,很難吸引讀者的關(guān)注,用戶粘性較差?;趙eb2.0技術(shù)的lib2.0曾于2006年左右在國內(nèi)圖情界興起,并且在業(yè)內(nèi)風(fēng)靡了一段時間,主要應(yīng)用有RSS、TAG、Ajax、Blog等,其中RSS應(yīng)用最多,但也僅僅局限于業(yè)內(nèi)流行,用戶并沒有真正參與進(jìn)來。Mashup基于web2.0技術(shù),web2.0的目標(biāo)之一是降低技術(shù)壁壘,讓任何人能更容易增加網(wǎng)站的功能性、交互性、關(guān)聯(lián)性、有用性以及趣味性。
隨著互聯(lián)網(wǎng)和通信技術(shù)快速應(yīng)用和普及,圖書館已不再是用戶獲取信息資源的主要途徑,搜索引擎和門戶網(wǎng)站成為用戶的首選方式。傳統(tǒng)圖書館網(wǎng)站正面臨著嚴(yán)峻挑戰(zhàn),OPAC查詢、資源導(dǎo)航等傳統(tǒng)服務(wù)過于專業(yè)化和學(xué)術(shù)化。網(wǎng)站要留住用戶,必須準(zhǔn)確地展示圖書館是一個充滿活力的、重要的場所,提供的內(nèi)容要融入到用戶生活中去。目前圖書館技術(shù)力量普遍較為薄弱,中小型圖書館尤為突出,專業(yè)技術(shù)人員嚴(yán)重缺乏,崗位身兼多職,導(dǎo)致圖書館網(wǎng)站建設(shè)同質(zhì)化嚴(yán)重、缺乏創(chuàng)新、疏于維護(hù)?;趙eb2.0技術(shù)的Mashup技術(shù)能夠幫助圖書館克服這一困境,技術(shù)人員不需要了解復(fù)雜的專業(yè)知識和工作原理,只需要在圖書館網(wǎng)頁中嵌入一些自動生成的代碼便能夠很容易地實現(xiàn)這些應(yīng)用,從而使網(wǎng)站變得充滿吸引力和活力。論文以蘇州圖書館分館導(dǎo)航地圖為例,使用兩種不同的地圖API實現(xiàn)Mashup地圖應(yīng)用。
4.蘇州圖書館分館導(dǎo)航地圖實現(xiàn)
隨著城市化快速發(fā)展,城市人口和地域都變得越來越大,任何一個圖書館都無法滿足隨著城市化進(jìn)程迅猛增加的用戶信息需求,因此各城市中心圖書館都設(shè)立了眾多分館,蘇州圖書館從2005年起與各區(qū)政府及機構(gòu)合作建設(shè)圖書館分館,截止到2012年底已建成分館45個,分布于蘇州市的大街小巷,方便用戶就近獲取信息資源。然而多數(shù)社區(qū)分館在普通地圖上根本沒有標(biāo)注,用戶要想找到這些分館,只有通過現(xiàn)有的圖書館網(wǎng)站層層分級導(dǎo)航查詢圖書館介紹,使用起來非常繁瑣,偏離了設(shè)立分館方便用戶的初衷。Mashup地圖就能輕松實現(xiàn)這一目標(biāo),可視化的導(dǎo)航地圖展現(xiàn)方式形象、直觀,并且能告知用戶使用多種交通工具到到目的地。
4.1 百度團(tuán)購控件API實現(xiàn)方式
百度地圖于2011年正式推出了團(tuán)購地圖API,作為一套生成團(tuán)購網(wǎng)站地圖展現(xiàn)的工具,團(tuán)購地圖插件包含了坐標(biāo)點采集、團(tuán)購頁面地圖展示等功能,只要在團(tuán)購插件主頁做簡單的設(shè)置,就可以得到相應(yīng)代碼。團(tuán)購控件盡管是為了團(tuán)購網(wǎng)站而開發(fā),但其很容易移植到圖書館位置導(dǎo)航應(yīng)用服務(wù)。將使用百度地圖采集到的圖書館分館經(jīng)緯度、名稱和地址,替換代碼中的point信息,然后將自動生成的代碼嵌入到圖書館主頁上即可使用,整個過程可謂簡單明了。圖3是基于百度團(tuán)購控件制作的蘇州圖書館分館導(dǎo)航圖。關(guān)鍵代碼如下:
var poiData=[{lng:120.630056,lat:31.306671,title:\"蘇州圖書館\",tel:\"(0512) 65227889\",address:\"蘇州市人民路858號\"},]; … …//存儲各分館point信息
var gp=new BMapGP.GroupPurchase (\"container\",{
enableRouteInfo:true,//啟用附近公交/地鐵路線
enableRouteSearchBox:true,//啟用公交路線搜索功能
selectFirstResult:true,//是否展開第一個結(jié)果
type:JS_MAP,//地圖類型
zoom:11,//地圖縮放級別
mapSize:{width:200,height:250},//地圖大小
pois:poiData
});
4.2 百度地圖JavaScript API實現(xiàn)方式
使用百度團(tuán)購控件API創(chuàng)建的地圖導(dǎo)航,因其擴(kuò)展性限制,屬性字段相對固定,信息顯示過于簡單。要開發(fā)功能更加完善的導(dǎo)航地圖,就需要使用百度地圖JavaScript API,它是一套由JavaScript語言編寫的應(yīng)用程序接口,可在網(wǎng)站中構(gòu)建功能豐富、交互性強的地圖應(yīng)用,支持PC端和移動端基于瀏覽器的地圖應(yīng)用開發(fā),且支持HTML5特性的地圖開發(fā)[3]。圖4基于JavaScript API制作的蘇州圖書館分館導(dǎo)航圖,可以根據(jù)實際需要在信息窗口添加內(nèi)容。開發(fā)過程分為四個步驟,首先根據(jù)導(dǎo)航圖功能需要定制合適的地圖控件,如縮放、鷹眼、地圖類型控件等;采集各個分館的地圖經(jīng)緯度并加以標(biāo)注,信息的收集正是圖書館強項所在;編制各個分館屬性,如名稱、地址、電話、開放時間、書目查詢鏈接等;最后展示各個分館信息。
4.2.1 創(chuàng)建導(dǎo)航地圖,設(shè)定地圖控件
var map=new BMap.Map(“container”);//創(chuàng)建Map
map.centerAndZoom(new BMap.Point (120.630056,31.306671),14);//設(shè)置中心點和縮放級別
map.addControl(new BMap.Navigation Control());//添加左上角縮放平移控件
map.addControl(newBMap.OverviewMapControl({isOpen:true,anchor:BMAP_ANCHOR_BOTTOM_RIGHT}));//添加右下角鷹眼控件
map.addControl(newBMap.MapType Control({mapTypes:[BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]}));//添加2D圖,衛(wèi)星圖
4.2.2 獲取分館經(jīng)緯度并標(biāo)注在地圖上
var points=[new BMap.Point(120. 630056,31.306671),… …];//N個分館經(jīng)緯度
var marker1=new BMap.Marker (point[0]);//創(chuàng)建N個分館標(biāo)注
map.addOverlay(marker1);//將N個分館標(biāo)注添加到地圖中
map.setViewport(point);//調(diào)整地圖的最佳視野
4.2.3 編制分館屬性
var infoWindow1=new BMap.InfoWindow (“… …”);//創(chuàng)建信息窗口對象,引號里可以書寫任意的html語句。
4.2.4 展示分館信息
marker1.addEventListener(“mouseover”,function(){this.openInfoWindow (infoWindow1);});
}////給標(biāo)注添加鼠標(biāo)事件,當(dāng)鼠標(biāo)滑過標(biāo)注的時候,打開信息窗口。
5.結(jié)語
論文介紹了兩種基于百度地圖API實現(xiàn)蘇州圖書館分館導(dǎo)航圖的方法,適合完全沒有程序開發(fā)背景的圖書館工作人員,非常適合中小型圖書館參考使用。具備一定編程語言基礎(chǔ)的技術(shù)人員還可以結(jié)合數(shù)據(jù)庫技術(shù),開發(fā)出功能更加強大的導(dǎo)航圖。開放是目前互聯(lián)網(wǎng)的發(fā)展趨勢,越來越多的產(chǎn)品走向開放,因此圖書館網(wǎng)站可以混搭的類型也越來越多,如豆瓣API、微博API、微信API、優(yōu)酷API等。借助開放的API,技術(shù)人員可以開發(fā)出更為有趣的第三方應(yīng)用,增加網(wǎng)站用戶的粘性,網(wǎng)站制作與維護(hù)也變得更加簡便。
參考文獻(xiàn)
[1]尼科爾.C.伊恩歌德.圖書館“混搭”[M].重慶:重慶大學(xué)出版社,2011(6).
[2]龍岳紅.地圖Mashup的研究與實現(xiàn)[D].湖南:中南大學(xué),2008.
作者簡介:徐德軍(1983—),男,南京大學(xué)信息管理學(xué)院在職研究生,館員,現(xiàn)供職于蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院,研究方向:數(shù)字圖書館。